在 jquery 上以编程方式正确在删除元素后获取属性

On jquery is programmatically correct get an attribute after removed the element

这个问题是想知道有没有跨浏览器的兼容性,如果真的确定去掉了也总是得到属性值,比如这两种情况:

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");

谢谢。

如有错误请指正。

据我了解,您问的是这种方法之间的区别...

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");

两者之间的区别取决于谁在编码。变量的要点是很多时候存储更大的字符串、方法函数等更容易:而不是多次调用它。

此外,您可以观看 ASI (Automatic Semicolon Insertion) (If you don't want to read you can watch this video

两者之间的唯一区别取决于用户如何编写应用程序,因为每个人都有自己的风格。在这种情况下,$deltr 将在整个应用程序中与 rel 一起使用,但它们可能并不总是一起使用

var $deltr = $(this).closest("tr").remove();
// code using $deltr to store it
var rel = $deltr.attr("rel");

据我了解,删除元素后无法获取属性。

一旦 remove()d,该元素不再存在于 DOM 中且无法恢复(即使分配给变量),也无法探测其属性。

在 jQuery 1.4 中,创建了 detach() method 以从 DOM 中删除一个元素,但仍保持它可用于恢复。但不是 remove().

This jsFiddle 允许您尝试在删除元素之前和之后获取 rel 属性。

请注意,rel= 是锚点 <a> 标签的一个属性,not of a table tr,但我假设您知道自己在做什么。