Пользовательский селектор атрибута данных не работает - PullRequest
2 голосов
/ 14 февраля 2012

Любая идея, почему это происходит ...

    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 Ответ

13 голосов
/ 14 февраля 2012

Вам нужно использовать конкатенацию строк, чтобы создать строку со значением "a[data-target='profile_following']".Вы делаете это с помощью:

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

В вашем примере +attr+ является частью строки, потому что вы никогда не закрывали и не открывали свои кавычки.

...