jquery中.id和.attr('id')之间的区别是什么

Jen*_*sen 2 jquery identity element this attr

var x = $(this).parent().parent().parent().parent();
Run Code Online (Sandbox Code Playgroud)

x.id给我的undefined同时x.attr('id')返回正确的id.

谁能告诉我这两者之间的区别.顺便问一下,有没有更好的方法$(this).parent().parent().parent().parent(),我不想给他们分配ID,因为这会使得更难以使用这些元素.

谢谢

jfr*_*d00 11

x.id什么x是DOM元素,而不是什么时候x是jQuery对象.

如果x是jQuery对象,您可以这样做:

x[0].id
Run Code Online (Sandbox Code Playgroud)

从jQuery对象获取第一个DOM元素,或者您可以使用:

x.attr('id')
Run Code Online (Sandbox Code Playgroud)

使用jQuery方法检索属性.

至于你的另一个问题,更换这个的更好方法是:

$(this).parent().parent().parent().parent()
Run Code Online (Sandbox Code Playgroud)

是将一个类放在所需的父级上并使用它:

$(this).closest(".target")
Run Code Online (Sandbox Code Playgroud)

.closest(selector)方法将找到与选择器匹配的最近父级.使用类来解决此问题使得设计变得容易,因为您不必使用唯一ID.