自定义数据属性选择器不起作用

mat*_*att 2 javascript jquery html5 attributes selector

知道为什么会这样吗......

    var attr = $(this).data('link');
    console.log(attr); // profile_following
    console.log($("a[data-target='profile_following']")); // found the object
    console.log($("a[data-target='+attr+']")); // [] empty
Run Code Online (Sandbox Code Playgroud)

在点击处理程序里面我有上面的行! console.log(attr);成功打印profile_following 但是如果我尝试选择一个带有属性选择器的链接,这个变量就像这样console.log($("a[data-target='+attr+']"));找不到元素!

而最奇怪的事情就是如果我对线条进行硬编码就像console.log($("a[data-target='profile_following']"));成功找到对象一样.

知道为什么同一行不适+attr+用于属性选择器内部?

zzz*_*Bov 13

您需要使用字符串连接来创建值为的字符串"a[data-target='profile_following']".你这样做:

$('a[data-target="'+attr+'"]');
Run Code Online (Sandbox Code Playgroud)

在您的示例中,+attr+是字符串的一部分,因为您从未关闭并重新打开引号.