2012-06-20 163 views
1

我已經創建了一個jqueryUI拖放列表。現在,我需要從中刪除一個對象。我已經使用下面的函數爲它:使用子元素訪問其他父元素屬性

function remove(el) { 
$(el).hide(); 
$(el).parent().parent().effect("highlight", {color: "#ff0000"}, 1000); 
$(el).parent().parent().fadeOut('1000'); 
setTimeout(function() { 
    $(el).parent().parent().remove(); 
    }); 
} 

而這是代碼,通過該執行該功能(刪除(本)功能):

var html = '<div class="item i">'; 
html = html + '<div class="divrm">'; 
html = html + '<a onclick="remove(this)" class="remove '+itemid+'">&times;</a>'; 
html = html + '<div/>'+item+'</div>'; 

假設我有一個這樣的元件:

<div class="item" id="i2"> 
<img src="img/2.jpg"/> 
<label class="title">Title</label> 
<label class="weight">Heavy</label> 
</div> 

現在在刪除功能,我需要標籤之間有「.title」類之間的文本。我怎樣才能做到這一點?我試過這個,但它似乎沒有工作:

var remtitle = $(el).parent()。parent()。find(「。title」)。val();

我在做什麼錯了?我對jquery相當陌生,所以它可能是一個業餘的錯誤。

+0

呃,在JavaScript字符串內嵌入JavaScript?我會開始追蹤從那裏的問題... – elclanrs

+0

你試過.text()嗎? –

+0

.text()也可以工作..感謝您的幫助! :) –

回答

1

使用html()text()代替val()因爲拉布勒不是輸入型:

var remtitle = $(el).closest('.item').find(".title").html(); 

注意,除了closest()功能還可以幫助找到父容易,而不是一次又一次地使用parent()。另外請確保將您的代碼放在jQuery ready()處理程序中。

+0

謝謝..最接近的()函數非常適合訪問父元素!特別是因爲很少需要考慮完整的DOM樹來尋找父元素。 –