jQuery在find()选择器

时间:2018-05-09 09:23:23

标签: javascript jquery

我尝试搜索字符串$div,而不是选择脚本所在域的a标记。这有效,静态进入域名......

        $div.find("a:not([href*=mywebsite])").attr('rel', function(i, val) {
            ...
            return val;
        });

但这不起作用......

        var $this_domain = window.location.hostname;
        // $this_domain.toString();
        $div.find("a:not([href*=" + $this_domain + "])").attr('rel', function(i, val) {
            ...
            return val;
        }

为什么这不起作用的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:1)

最有可能的是,$this_domain将是一个至少有一个.的字符串,但.在jQuery选择器中有一个special meaning。在找到元素之前,您需要escape the value。试试这个:

$div.find("a:not([href*=" + $.escapeSelector($this_domain) + "])")
  .attr( ... );

此外,只是要指出,你没有将值包装在引号中,这可能会导致错误。