jQuery:包含跳过匹配包括&

时间:2014-05-08 15:22:33

标签: javascript jquery

这是代码

$(function() {
        $(".category-list li ul li").children("a").each(function (){
          var subListName = $(this).html();
          var subListContent = $(this).next("ul").clone();
          $(".subcat-grid ul li a:contains("+ subListName +")").after(subListContent);
        });
    }); 

所有内容都匹配正确,但使用subListName的{​​{1}}正在&中返回false,因此内容未被添加。

我检查了变量$(".subcat-grid ul li a:contains("+ subListName +")")的值和subListName的返回值,看起来它们应该匹配。我不知道为什么$(".subcat-grid ul li a")正在使用:contains

跳过值

2 个答案:

答案 0 :(得分:0)

您应该使用.text来获取文字,否则&等字符将转换为&,这将无效,因为:contains匹配innerText 1}},而不是innerHTML

$(function() {
    $(".category-list li ul li").children("a").each(function (){
      var subListName = $(this).text();
      var subListContent = $(this).next("ul").clone();
      $(".subcat-grid ul li a:contains("+ subListName +")").after(subListContent);
    });
});

答案 1 :(得分:0)

无论何时处理字符串,都要查看结果。

在这种情况下,您的选择器将是:

.subcat-grid ul li a:contains(x & y)

这是不正确的。尝试:

.subcat-grid ul li a:contains('x & y')

即。用引号包装你的内容。