2016-03-19 12 views
0

這個問題是要知道是否有跨瀏覽器的兼容性,如果它確實總是得到屬性值,即使它被刪除後,例如,在這些兩種情況:在jquery上編程正確得到一個屬性後刪除元素

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

不確定是什麼問題?將元素從文檔中移除後,是否將元素的屬性存儲爲變量?預計結果沒有返回? – guest271314

+0

除了在第二種方法中使用多行之外,這兩種方法之間有什麼區別? – stjepano

回答

1

用我的理解是,該元素已被刪除後,您不能得到ATTR。

一旦remove() d,該元素不再存在於DOM中,並且無法恢復(即使分配給變量),也無法檢測其屬性。

在jQuery 1.4中創建detach() method是爲了從DOM中刪除一個元素,但仍然保留它用於恢復。但不是remove()

This jsFiddle允許您嘗試在刪除元素之前和之後獲取rel屬性。

請注意,rel=是標記<a>標記not of a table tr的屬性,但我假設你知道你在做什麼。

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