2012-06-20 104 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树来寻找父元素。 –