Jquery 中使用$("#")获取对象和$(this)有什么区别?
假设我现在有一个ID为MyTable的table,然后里面有一个ID为MyTr的行!我循环遍历MyTable,然后循环到MyTr的时候使用$(this)获取到这个对象;和...
假设我现在有一个ID为MyTable 的table,然后里面有一个ID为MyTr的行!我循环遍历MyTable,然后循环到MyTr的时候使用$(this)获取到这个对象;和我直接使用$("#MyTr")获取这个对象有什么区别?
展开
4个回答
2012-05-29
展开全部
$(this)获取当前操作对象;$("#")获取指定ID的对象;
拿你的这个例子来说,如果你全文档只有一个ID为MyTr的元素那么你完全可以用$("#MyTr"),如果有两个或以上那么你就需要用$(this),当然也可以用$("#MyTr:eq(x)"),x为第x+1个#MyTr元素
拿你的这个例子来说,如果你全文档只有一个ID为MyTr的元素那么你完全可以用$("#MyTr"),如果有两个或以上那么你就需要用$(this),当然也可以用$("#MyTr:eq(x)"),x为第x+1个#MyTr元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
得到的结果完全相同.
但注意这是二种完全不同的逻辑.
循环遍历 保证了从某父级中取得一个值.
直接使用$("#MyTr") ,我们只知道#MyTr" 可能在document文档中.
所在我建议你这样写代码.
在已知道父级的时候
$("#MyTable").find("#MyTr")
但注意这是二种完全不同的逻辑.
循环遍历 保证了从某父级中取得一个值.
直接使用$("#MyTr") ,我们只知道#MyTr" 可能在document文档中.
所在我建议你这样写代码.
在已知道父级的时候
$("#MyTable").find("#MyTr")
更多追问追答
追问
好吧,我也觉得是完全相同的!昨天遇到一个问题,今天早上忽然就解决了。很纠结的一个问题!我想获取一个tr的rowIndex属性!但是用$("#MyTr").rowIndex;获取出来为undefined!如果我用document.getElementById("MyTr").rowIndex;就能获取出来值!这个是个什么样的情况?
追答
$("#MyTr") 是jquery对象
document.getElementById("MyTr") 是DOM对象
二都的方法 完全不同
你在jquery对象上使用 DOM对象 的方法 当然取不到值了.
$("#MyTr").attr("rowIndex")===$("#MyTr").get().rowIndex === document.getElementById("MyTr").rowIndex
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你都可以直接使用$("#MyTr")去获取该对象了还要循环遍历去获取干嘛,用$(this)表示当前操作的对象,如果你仅仅是遍历MyTable的话很可能获取的对象就是MyTable;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询