如何使用jquerycontains:selector创建div并在匹配时显示不同的div块?

如何使用jquerycontains:selector创建div并在匹配时显示不同的div块?,jquery,xml,contains,Jquery,Xml,Contains,我正在处理的合并代码有问题 参考: 问题:我正在使用jquerycontains:selector将关键字(来自变量)匹配到特定的DIV(class=“keywords”)。如果存在匹配项,则显示另一个DIV(class=display),但不显示关键字DIV文本 另一个问题是,当variable关键字与DIV(class=display)匹配时,它会显示DIV(class=display)——但它不应该显示,因为我想将其仅限于DIV(class=keywords) 这是我的密码: <d

我正在处理的合并代码有问题

参考:

问题:我正在使用jquerycontains:selector将关键字(来自变量)匹配到特定的DIV(class=“keywords”)。如果存在匹配项,则显示另一个DIV(class=display),但不显示关键字DIV文本

另一个问题是,当variable关键字与DIV(class=display)匹配时,它会显示DIV(class=display)——但它不应该显示,因为我想将其仅限于DIV(class=keywords)

这是我的密码:

<div class="container">
<div class="keywords" style="display:none">San Antonio Spurs</div>
<div class="display" style="display:none">Results one for SAS</div>
</div>

<br>
<div class="container">
<div class="keywords" style="display:none">Miami Heat</div>
<div class="display" style="display:none">Results two for MIA</div>
</div>

<br>
<div class="container">
<div class="keywords" style="display:none">Los Angeles Lakers</div>
<div class="display" style="display:none">Results three for LAL</div>
</div>

<br>
<div class="container">
<div class="keywords" style="display:none">Cleveland Cavaliers</div>
<div class="display" style="display:none">Results two another for CAVS</div>
</div>
我正在尝试使用.children,或者修改代码,但是没有用

这是我的测试用例-

  • 关键字=热刺,然后显示=SAS的结果(正确结果)
  • 关键字=克利夫兰,然后显示=CAV的两个结果(正确结果)
  • 关键字=SAS,则不显示任何内容(但在我的代码中它是不正确的)
  • 关键字=LAL,则不显示任何内容(但在我的代码中它是不正确的)
  • #3和#4的问题是,它仍然显示DIV(class=display)

    这是我的测试小提琴-


    任何帮助都可以。谢谢。

    您需要将搜索范围限制为
    。关键字

    var keyword= "Spurs";
    $('.container').has('.keywords:contains('+keyword+')').children(".display").show();
    
    在您的情况下,您将对照关键字检查整个
    .container
    元素的内容,关键字将检查
    display
    元素的内容,而这不是您想要的内容。
    $('input')。更改(函数(){
    $('.container.display').hide();
    var关键字=this.value;
    $('.container').has('.keywords:包含('+keyword+'))。子项(“.display”).show();
    }).change()
    
    圣安东尼奥马刺队
    结果1例SAS
    
    迈阿密热火队 结果2例为MIA
    洛杉矶湖人队 结果3例为LAL
    克利夫兰骑士队 结果:CAVS中有两个是另一个
    在调用
    .container
    上的
    .is()
    时,尝试忽略
    .display
    元素,该元素将在其所有子体中搜索匹配项

    var关键字=“热刺”;
    $('.container>.keywords:包含('+keyword+'))。下一步('.display').show()
    
    
    圣安东尼奥马刺队
    结果1例SAS
    
    迈阿密热火队 结果2例为MIA
    洛杉矶湖人队 结果3例为LAL
    克利夫兰骑士队 结果:CAVS中有两个是另一个
    谢谢@Arun P Johny成功了这里有一个新的测试-我错过了。有,但现在它在我的测试用例中看起来是正确的。@syntaxcode您可以使用SO的新代码段,而不是我上面所附的JSFIDLE。谢谢您提供了新的代码段工具。美好的我可以检查我的关键字测试!谢谢@Rajaprabhu Aravindasam,这个也很有效。得到了这方面的参考:和
    var keyword= "Spurs";
    $('.container').has('.keywords:contains('+keyword+')').children(".display").show();