我使用Fancy Music Player:http://codecanyon.net/item/fancy-music-player-v20-jquery-plugin 所以我无法编辑主插件文件,所以我必须这样做!
我有两个内容相同的列表:
<ul id="list1">
<li><em> item one </em> <a class="delete" href="#">Delete</a></li>
<li><em> item two </em> <a class="delete" href="#">Delete</a></li>
<li><em> item three </em> <a class="delete" href="#">Delete</a></li>
</ul>
<ul id="list2">
<em> item one </em>
<em> item two </em>
<em> item three </em>
</ul>
我可以删除第一个列表中的项目.. 但我想删除#list2中的项目,如果它有相同的文本 我不能使用id,所以我想要一种方法来做这样的事情:
$(".delete").live('click',function(eve) {
eve.preventDefault();
// 1- delete item here in the first list
// it's ok
// 2- delete the same item in the second list ('#list2') using text inside <em> ?
var titleItem = $(this).parent().find('em').text(); // i get here ( item one or item two .. etc . depends on the item clicked above )
// here I want to see if this titleItem == ('#list2 em').text .. so delete it too
// I have to use the conent here cuz I can not edit to the main jquery plugin :(
});
谢谢..
答案 0 :(得分:2)
尝试 -
$(".delete").live('click',function(eve) {
eve.preventDefault();
var titleItem = $(this).parent().find('em').text();
$(this).parent().find('em').remove();
$("#list2").find("em:contains('" + titleItem + "')").remove();
});
答案 1 :(得分:2)
$(".delete").live('click',function(event) {
var titleItem = $(this).parent().find('em').text().trim();
$("#list2 li").each(function(i, item){
$item = $(item);
if($item.find('em').text().trim() === titleItem){
$item.remove();
}
});
});
答案 2 :(得分:1)
此处:查看jsfiddle。
您需要将文本保存到变量,然后使用.each()函数在list2中搜索它。
$(".delete").live('click',function() {
var t = $(this).parent().find('em').text();
// 1- delete item here in the first list
$(this).parent().remove();
// 2- delete the same item in the second list ('#list2') using text inside <em> ?
$('#list2 em').each(function(){
if($(this).text()==t) $(this).remove();
});
event.preventDefault();
});