Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除其他类中的类似元素_Javascript_Jquery - Fatal编程技术网

Javascript 删除其他类中的类似元素

Javascript 删除其他类中的类似元素,javascript,jquery,Javascript,Jquery,在html中通过jquery单击111或222或333中的一个之后,如何删除类.makhzan中的类似元素(ul) 演示: 我的尝试: $('.class_show .tooltip_hover').live('click change', function(){ $(this).closest('ul').remove(); var value_bet = $(this).text(); $(".makhzan .tooltip_hover li").filter(fu

在html中通过jquery单击
111
222
333
中的一个之后,如何删除类
.makhzan
中的类似元素(ul)

演示:

我的尝试:

$('.class_show .tooltip_hover').live('click change', function(){
    $(this).closest('ul').remove();
    var value_bet = $(this).text();
    $(".makhzan .tooltip_hover li").filter(function () {
        var get = $(this).text() == value_bet;
        return get.closest('ul'); // This doesn't work for remove element ul
    }).remove();
});
函数期望回调函数返回
true
false
。您应该返回
get
,然后删除筛选集合上的
最近('ul')

$('.class_show .tooltip_hover').live('click change', function(){
    $(this).closest('ul').remove();
    var value_bet = $(this).text();
    $(".makhzan .tooltip_hover li").filter(function () {
        return $(this).text() == value_bet;
    }).closest('ul').remove();
});

也许这对你有帮助,我不确定

$('.class_show .tooltip_hover li').click(function() {
    var li_text = $(this).text();
    $('.makhzan .tooltip_hover li').each(function() {
        if($(this).text() == li_text){
            $(this).remove();
        }
    });
});
仅当文本完全相同时,此操作才有效


可能您必须使用另一种类型的比较

尝试使用
:contains
来避开筛选功能:

$('.class_show .tooltip_hover').live('click change', function(){
    $(this).closest('ul').remove();
    var value_bet = $.trim($(this).text());
    $('.makhzan .tooltip_hover li:contains("'+value_bet+'")')
        .closest('ul').remove();
});

但是,如果您使用的是jQuery 1.7,那么您最好习惯于使用
.on
而不是
.live

$(document).on('click change', '.class_show .tooltip_hover', function() {
    ...
});

更新

根据nachito的评论——如果我正在构建这个,我会为每个
  • 分配一个属性,如
    data key=“1”
    ,并将其匹配,而不是尝试匹配HTML元素的确切文本内容并冒失配的风险:

    $(document).on('click change', '.class_show .tooltip_hover', function() {
        $(this).closest('ul').remove();
        var value_bet = $(this).find('li').data('key');
        $('.makhzan .tooltip_hover li[data-key="' + value_bet + '"]')
            .closest('ul').remove();
    });
    

    使用.parents('ul').eq(0)代替最近的booo jsfiddle not loadinfg…嗯。。。什么即使使用小提琴,我也不明白您想做什么。是否要删除与您正在单击的元素具有相同文本的其他元素?您的演示中有一个错误:
  • 必须在
      中,而不是:只要文本是唯一的,contains将非常有效。我知道示例中的值很简单,但是应该指出,如果.makhzan中的
    • 标记包含而不是相等的
      值,它们将被删除,例如,单击
      111
      将删除
      111
      111222
      @nachito True;使用
      .text
      也有一些限制,因为它去掉了所有HTML标记,可能保留也可能不保留空白。最佳选择在很大程度上取决于OP想要在什么上使用它。