为什么$(';*';)不';不能在jQuery中工作

为什么$(';*';)不';不能在jQuery中工作,jquery,Jquery,在下面的jQuery代码中,我想突出显示包含“z”的行。不知怎的,$('*')不起作用。如果我将其修改为$('li'),它将工作 <ul> <li>a b c</li> <li>x y z</li> </ul> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <

在下面的jQuery代码中,我想突出显示包含“z”的行。不知怎的,$('*')不起作用。如果我将其修改为$('li'),它将工作

<ul>
  <li>a b c</li>
  <li>x y z</li>
</ul>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
  (function($) {
    var pattern = /z/i;
    $('*').filter(function() {
      return pattern.test($(this).text());
    }).wrap('<strong></strong>');
  })(jQuery);
</script>
  • a、b、c
  • x y z
(函数($){ var模式=/z/i; $('*')。筛选器(函数(){ 返回pattern.test($(this.text()); }).wrap(“”); })(jQuery);
*
也选择
html
节点,然后尝试将其包装在
strong
元素中,这可能是问题所在

在控制台中,您应该看到如下错误

未捕获的HierarchyRequestError:无法在上执行“insertBefore” “节点”:类型为“STRONG”的节点不能插入到 键入“#文档”

(函数($){
var模式=/z/i;
变量a=$('body*')。过滤器(函数(){
返回pattern.test($(this.text());
}).wrap(“”);
})(jQuery)
strong{
边框:1px纯红;
填充物:5px;
显示:内联块;
}

  • a、b、c
  • x y z
仅包装文本li

  (function($) {
    var pattern = /z/i;
    $('*').find("ul li").filter(function(i,v) {
      return pattern.test($(this).text());
    }).wrap('<strong></strong>');
  })(jQuery);
(函数($){
var模式=/z/i;
$('*').find(“ul li”).filter(函数(i,v){
返回pattern.test($(this.text());
}).wrap(“”);
})(jQuery);

可能需要这些,请尝试以下操作:

  • 全选
  • 添加DOM[strong](添加到*Add strong)

  • 在*中添加[strong]-->2。重复[strong]。。。。您的控制台
    Uncaught HierarchyRequestError:未能在“节点”上执行“insertBefore”:不能将“DIV”类型的节点插入到“document”类型的节点中