我创建了一个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();
});
}
这是执行此函数的代码(remove(this)函数):
var html = '<div class="item i">';
html = html + '<div class="divrm">';
html = html + '<a onclick="remove(this)" class="remove '+itemid+'">×</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>
现在在remove函数中,我需要带有“.title”类的标签之间的文本。我怎样才能做到这一点?我试过这个,但它似乎没有起作用:
var remtitle = $(el).parent()。parent()。find(“。title”)。val();
我做错了什么?我对jquery相当新,所以这可能是一个业余的错误。
答案 0 :(得分:1)
使用html()
或text()
代替val()
,因为标签不是输入类型:
var remtitle = $(el).closest('.item').find(".title").html();
请注意,添加closest()
功能也有助于轻松找到父级,而不是一次又一次地使用parent()
。还要确保将代码放在jQuery ready()
处理程序中。