Простой селектор JQuery не находит идентификатор в строке - PullRequest
2 голосов
/ 29 июня 2011
var chk = "<div id='test'>Trying</div>";

    alert($("#test",chk).html());

Ну, этот JQuery от String не работает так просто, но он не работает = / Что в этом плохого? заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 29 июня 2011

Попробуйте что-то вроде этого:

var chk = "<div><span id='test'>Trying</span></div>";
alert($("#test",chk).html());

первый параметр"#test" - это ваш селектор (что вы действительно хотите получить).

И второй параметр chk - это ваш контекст (в пределах вашего запроса / поиска выполняется).

3 голосов
/ 29 июня 2011

SunnyRed ударил ногтем по голове.

Беда в том, что когда вы говорите:

$("#test",chk)

Вы ищете все элементы DOM внутри (и не включая) тега chk. К сожалению, поскольку этот тег содержит #test, ваш поиск ничего не находит. Рассмотрим документацию jQuery :

По умолчанию селекторы выполняют поиск в DOM, начиная с корня документа. Однако альтернативный контекст может быть задан для поиска с помощью необязательного второго параметра функции $ ().

Если вы оберните строку с корневым уровнем <div> и затем попытаетесь выполнить поиск, вы получите то, что вам нужно:

var chk = "<div><div id='test'>Trying</div></div>";
alert($("#test", chk).html());

Живой пример см .: http://jsfiddle.net/GpdYz/

1 голос
/ 29 июня 2011
alert($(chk).html()); // Trying
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...