我有一个页面,其中消息和相关元素(响应,转发等)都根据父级的数据库ID共享一个类。
例如
<pre>
<div id="recentMessages">
<div id="a3" class="message a3">this is a message</div>
<div id="a5" class="message a5">this is another message</div>
</div>
<div id="recentComments">
<div id="a3" class="comment a3">this is a comment</div>
<div id="a5" class="comment a5">this is another comment</div>
</div>
<div id="recentActions">
<div id="a3" class="action a3">tim posted a new message</div>
<div id="a4" class="action a4">sara forwarded a message to john</div>
</div>
</pre>
有时我需要删除所有具有相同ID的元素,所以我最初有
jQuery('div#'+id).remove();
但有时候不会删除所有ID,因为ID应该是唯一的。 所以我把id添加为一个类。现在我用
jQuery('div.'+id).remove();
但这似乎有效率约为80%,有时div不会被删除。 我不确定问题是否因为div有多个类,但是我需要这些类,因为这是我在有人点击时引用元素的方式。 例如,
jQuery('div.message').click(function(){ get the id, send it to the server and get the message });
我在这里做错了吗?或者有更好的方法吗?
答案 0 :(得分:0)
看起来这是一个使用已定义的变量调用函数的问题。我没有意识到这会引起问题 例如:
jQuery('div','div#recentActions').click(function(){
var removeId=jQuery(this).attr('id').replace('','a');
removeDiv(removeId);
});
function removeDiv(removeId){
jQuery('div#a'+removeId).remove();
}
我不能肯定这是问题所在,而是将功能更改为:
function removeDiv(cancelId){
jQuery('div#a'+canceld).remove();
}
似乎正在发挥作用。