【问题标题】:Jquery searching an element for two sets of stringsJquery在一个元素中搜索两组字符串
【发布时间】:2016-07-05 17:41:53
【问题描述】:

试图让 Jquery 对从两个变量的组合加载的字符串运行搜索。

下面是更多代码以获得更多上下文。 此代码的目的是在 SharePoint 表中搜索通过按下按钮给出的值以及用户可以选择键入的值。用户可以仅使用搜索输入(txt 变量)或按钮进行搜索。

var ButtonValue = null
$("#button1").click(function(){


            $("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ5").find("tr.ms-itmhover:Contains('Faucets')").show();

             $("#WebPartWPQ6").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ6").find("tr.ms-itmhover:Contains('Faucets')").show();

            $("#WebPartWPQ4").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ4").find("tr.ms-itmhover:Contains('Faucets')").show();

            $("#WebPartWPQ7").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ7").find("tr.ms-itmhover:Contains('Faucets')").show();

            $("#WebPartWPQ2").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ2").find("tr.ms-itmhover:Contains('Faucets')").show();

            $("#WebPartWPQ8").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide();
             $("#WebPartWPQ8").find("tr.ms-itmhover:Contains('Faucets')").show()
             ButtonValue = "Faucets" 

             });

$("input.search").change(function() {
              var txt = $("input.search").val();



        if (txt) {
              //alert("VN : " + VN);
              //alert(".change() called");

             //Vendor List
             $("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ5").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+" )").show();

             //Manufacturer Reps
             // Logic to see search value is numeric then search using the company name
             $("#WebPartWPQ6").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ6").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show();

             //Vendor Contact List
             $("#WebPartWPQ4").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ4").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show();

             //Vendor Document List
             $("#WebPartWPQ7").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ7").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show();

             // Vendor Details
             $("#WebPartWPQ2").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ2").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show();

             // Product Lines
             $("#WebPartWPQ8").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
             $("#WebPartWPQ8").find("tr.ms-itmhover:Contains("+txt+ "+ButtonValue+"")").show();

            } else {

              $("#WebPartWPQ6").find("tr.ms-itmhover").show();
              $("#WebPartWPQ7").find("tr.ms-itmhover").show();
              $("#WebPartWPQ4").find("tr.ms-itmhover").show();
              $("#WebPartWPQ8").find("tr.ms-itmhover").show();
              $("#WebPartWPQ2").find("tr.ms-itmhover").show();
              $("#WebPartWPQ5").find("tr.ms-itmhover").show();           
            }
          }).keyup(function(){$(this).change();
         });


$("#button1").click(function() {
      $.ajax('/forward');
      $('button1').removeClass('active');
      $(this).addClass('active');
});

【问题讨论】:

  • Contains 会寻找与字符串完全匹配的内容。这就是你想要达到的目标?
  • @DinoMyte 不。不是完全匹配。这样做的正确方法是“喜欢”吗?

标签: jquery string contains


【解决方案1】:

您在 txt 变量之前的第一行缺少一个“+”:

$("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide();
$("#WebPartWPQ5").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+"))").show();

【讨论】:

    【解决方案2】:

    由于您要查找其中任一文本,您需要定义 2 个单独的 :contains 选择器。

    $("#WebPartWPQ5").find("tr.ms-itmhover td").hide();
    $("#WebPartWPQ5 tr.ms-itmhover td:contains("+txt+"), #WebPartWPQ5 tr.ms-itmhover td:contains("+ButtonValue+")").show();
    

    例如:https://jsfiddle.net/uyk0kopq/2/

    【讨论】:

    • 谢谢。对于我的应用程序,这并没有达到我想要的效果。它位于 SharePoint 表中,并且应该根据具有指定字符串的查询返回整行。有什么想法吗?
    • 'contains' 用于字符串查找。 tr 里面是txt, ButtonValue html 元素吗?
    • 是的。我在上面发布的查询确实可以在没有“ButtonValue”变量的情况下工作。我无法将“ButtonValue”的附加条件添加到查询中。
    • 如果没有底层的 html,真的很难找到确切的问题。您有机会将其添加到问题中吗?
    • 我已经添加了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2020-08-04
    • 2011-01-30
    • 2017-05-29
    • 1970-01-01
    相关资源
    最近更新 更多