Javascript 搜索div和他所有的孩子里面的文本

Javascript 搜索div和他所有的孩子里面的文本,javascript,jquery,html,string,Javascript,Jquery,Html,String,当输入表单中没有我正在编写的文本时,我想隐藏整个div。 现在,我可以在所有childs div中搜索,如果没有文本,则隐藏每个childdiv。 但我现在有个问题,例如: <div class="col-9 infos"> <div class="row"> <div class="col-4 nome"> <b>Nome: </b> Davide </div>

当输入表单中没有我正在编写的文本时,我想隐藏整个div。 现在,我可以在所有childs div中搜索,如果没有文本,则隐藏每个childdiv。 但我现在有个问题,例如:

<div class="col-9 infos">
    <div class="row">
        <div class="col-4 nome">
            <b>Nome: </b> Davide
        </div>
        <div class="col-4 regione">
            <b>Regione: </b> Reggio
        </div>
        <div class="col-4 citta">
            <b>Città: </b>Citta "
        </div>
    </div>
    <div class="row">
        <div class="col-4 dataNascita">
            <b>Data di nascita: </b>02-02-1992
        </div>
        <div class="col-4 coaching">
            <b>Coaching online: </b>Sì
        </div>
        <div class="col-4 sesso">
            <b>Sesso: </b>Maschio
        </div>
    </div>
    <div class="row border-bottom">
        <div class="col-6 blurry-text cellulare">
            <b>Cellulare: </b> 1231231231
        </div>
        <div class="col-6 blurry-text email">
            <b>Email: </b>asdaklsnd@gmail.com
        </div>
    </div>
    <div class="row descriptionText">
        <div class='col-10 descrizione'> aksjdbaksjbdkajs asdasdas </div>
        <div class='col-2 align-items-center'>
            <button type='button'>Profilo</button>
        </div>
    </div>
</div>

您可以包装行并将其作为包含元素,请参见下面的代码段:-

jQuery(#searchPt”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
jQuery('.row').filter(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});

3.
诺姆:戴维德
雷吉奥
Cittá:Citta“
纳斯西塔州数据:1992年2月2日
在线辅导:Sì
塞索:马斯基奥
赛璐珞:1231
电邮:asdaklsnd@gmail.com
aksjdbaksjbdkajs asdasdas
Profilo
3.
诺姆:西蒙妮
雷吉奥
城市:埃米利娅
纳斯西塔州数据:1992年4月2日
在线辅导:否
塞索:菲米娜
赛璐珞:1231
电邮:asdakl12412snd@gmail.com
AKSJDBAKSJB15251212612612DKAJS asdasdas
Profilo

您可以包装行并将其作为包含元素的目标,请参见下面的代码片段:-

jQuery(#searchPt”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
jQuery('.row').filter(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});

3.
诺姆:戴维德
雷吉奥
Cittá:Citta“
纳斯西塔州数据:1992年2月2日
在线辅导:Sì
塞索:马斯基奥
赛璐珞:1231
电邮:asdaklsnd@gmail.com
aksjdbaksjbdkajs asdasdas
Profilo
3.
诺姆:西蒙妮
雷吉奥
城市:埃米利娅
纳斯西塔州数据:1992年4月2日
在线辅导:否
塞索:菲米娜
赛璐珞:1231
电邮:asdakl12412snd@gmail.com
AKSJDBAKSJB15251212612612DKAJS asdasdas
Profilo

对于多个标准,进行拆分并使用一些短路逻辑测试每个值:

jQuery("#searchPt").on("keyup", function() {
    var value = $(this).val().toLowerCase().split();
    jQuery(".information").filter(function() {
        for(var i=0; i<value.length; i++){
           if($(this).text().toLowerCase().indexOf(value[i]) === -1) {
              $(this).toggle(false)
              return false; 
           }
        }
        $(this).toggle(true);
        return true
    });
});
jQuery(#searchPt”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase().split();
jQuery(“.information”).filter(函数(){

对于(var i=0;i对于多个标准,进行拆分并使用一些短路逻辑测试每个值:

jQuery("#searchPt").on("keyup", function() {
    var value = $(this).val().toLowerCase().split();
    jQuery(".information").filter(function() {
        for(var i=0; i<value.length; i++){
           if($(this).text().toLowerCase().indexOf(value[i]) === -1) {
              $(this).toggle(false)
              return false; 
           }
        }
        $(this).toggle(true);
        return true
    });
});
jQuery(#searchPt”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase().split();
jQuery(“.information”).filter(函数(){

对于(var i=0;iOh不介意它们,这是出于其他目的,您可以在
textContent
innerText
属性上使用
indexOf
,而不是基本上返回没有HTML标记的元素的内容。我使用“\”是因为我在ajax调用后通过Javascript创建了这些div。因此我使用了$('goToProfile')。append(“…”);我想指出代码实际上是有效的,但由于我使用*"在filter函数中,代码隐藏了所有不包含文本的子项。但是我不知道如何让它像我所希望的那样工作。由于这些注释,我发现我在编写代码时有多么愚蠢。我更改了它,现在可以正常工作。不过,任何人都对如何在输入中输入更多字符串有建议就像我在问题中写的例子?这就是为什么我说忽略它们:P编辑了问题并删除了反斜杠,这样问题更准确!感谢tipOh不要介意它们,这是出于其他目的,你可以在
textContent
innerText
属性上使用
indexOf
,而不是基本返回元素的内容没有HTML标记。我使用“\”是因为我在ajax调用后通过Javascript创建了这些div。所以我使用$(“#goToProfile”).append(“…”);我想指出代码实际上是有效的,但因为我使用了”*"在filter函数中,代码隐藏了所有不包含文本的子项。但是我不知道如何让它像我所希望的那样工作。由于这些注释,我发现我在编写代码时有多么愚蠢。我更改了它,现在可以正常工作。不过,任何人都对如何在输入中输入更多字符串有建议就像我在问题中写的例子?这就是为什么我说忽略它们:P编辑了问题并删除了反斜杠,这样问题更准确!