这个问题是要知道是否存在跨浏览器兼容性,并且如果它确实总是在删除后仍然获取属性值,例如,在这两种情况下:
var rel = $(this).closest("tr").remove().attr("rel");
或
var $deltr = $(this).closest("tr").remove();
// code using $deltr to store it
var rel = $deltr.attr("rel");
感谢。
答案 0 :(得分:1)
根据我的理解,你不能在删除元素后获取attr。
一旦remove()
d,该元素不再存在于DOM中且无法恢复(即使已分配给变量),也无法探测其属性。
在jQuery 1.4中,创建detach()
method是为了从DOM中删除一个元素,但仍然可以将其保留用于恢复。但不是remove()
。
This jsFiddle允许您尝试在删除元素之前和之后获取rel属性。
请注意,rel=
是锚<a>
标记not of a table tr的属性,但我假设您知道自己在做什么。
答案 1 :(得分:0)
如果我错了,请纠正我。
根据我的理解,你会问这种方法之间的区别......
var rel = $(this).closest("tr").remove().attr("rel");
vs这种做法?
var $deltr = $(this).closest("tr").remove();
// code using $deltr to store it
var rel = $deltr.attr("rel");
两者之间的差异取决于谁的编码。变量的重点很多,它更容易存储更大的字符串,方法函数等:而不是多次调用它。
此外,您可能会注意查看ASI (Automatic Semicolon Insertion)(如果您不想阅读,可以watch this video代替)
两者之间的唯一区别取决于用户如何编写应用程序,因为每个人都有自己的风格。在这种情况下,$deltr
将在整个应用程序中与rel
一起使用,但它们可能并不总是一起使用
var $deltr = $(this).closest("tr").remove();
// code using $deltr to store it
var rel = $deltr.attr("rel");