Jquery 中使用$("#")获取对象和$(this)有什么区别?

假设我现在有一个ID为MyTable的table,然后里面有一个ID为MyTr的行!我循环遍历MyTable,然后循环到MyTr的时候使用$(this)获取到这个对象;和... 假设我现在有一个ID为MyTable 的table,然后里面有一个ID为MyTr的行!我循环遍历MyTable,然后循环到MyTr的时候使用$(this)获取到这个对象;和我直接使用$("#MyTr")获取这个对象有什么区别? 展开
 我来答
阿刚炖蛋
2012-05-29 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:997万
展开全部
最最直接的区别就是,一般$("#")指定的对象都是一个,而且引用也指向一个对象;
但是$(this)就不固定,例如循环遍历MyTable,$("#MyTable >tr").each(function(){ $(this) }),
这里面的$(this)就是每一次循环的tr的引用。

当然,你描述的循环到了MyTr的时候,$(this)获取到的对象 和 $("#MyTr")获取到的是一样的。
匿名用户
2012-05-29
展开全部
$(this)获取当前操作对象;$("#")获取指定ID的对象;
拿你的这个例子来说,如果你全文档只有一个ID为MyTr的元素那么你完全可以用$("#MyTr"),如果有两个或以上那么你就需要用$(this),当然也可以用$("#MyTr:eq(x)"),x为第x+1个#MyTr元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alxw4616
推荐于2017-12-15 · TA获得超过272个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:290万
展开全部
得到的结果完全相同.
但注意这是二种完全不同的逻辑.
循环遍历 保证了从某父级中取得一个值.
直接使用$("#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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
资本主义闹革命
2012-05-29 · 超过10用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:34.6万
展开全部
你都可以直接使用$("#MyTr")去获取该对象了还要循环遍历去获取干嘛,用$(this)表示当前操作的对象,如果你仅仅是遍历MyTable的话很可能获取的对象就是MyTable;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式