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

时间:2012-02-14 18:24:14

标签: 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

在点击处理程序中,我有上面的行! console.log(attr);成功打印profile_following 但是,如果我尝试选择具有属性选择器的链接,并且此变量(例如console.log($("a[data-target='+attr+']"));)无法找到该元素!

最奇怪的是,如果我像console.log($("a[data-target='profile_following']"));那样对该行进行硬编码,它会成功找到该对象。

知道为什么同一行不适用于属性选择器中的+attr+

1 个答案:

答案 0 :(得分:13)

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

$('a[data-target="'+attr+'"]');

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