Javascript 在find()选择器中动态使用当前域的jQuery

Javascript 在find()选择器中动态使用当前域的jQuery,javascript,jquery,Javascript,Jquery,我试图搜索字符串$div,而不是选择脚本所在域的a标记。这是有效的,静态地进入域 $div.find("a:not([href*=mywebsite])").attr('rel', function(i, val) { ... return val; }); 但这不起作用 var $this_domain = window.location.hostname; // $this_do

我试图搜索字符串
$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;
        }
你知道为什么这行不通吗


提前感谢。

很可能,
$this\u domain
将是一个至少包含一个
的字符串,但是
在jQuery选择器中有一个。在找到元素之前,您需要执行以下操作。试试这个:

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

此外,需要指出的是,您没有将值用引号括起来,这可能会导致错误。

如果没有看到您试图选择的
a
元素的HTML以及
$This\u domain
(它不应该有
$
前缀,因为它是字符串,而不是jQuery对象)