Получить выбор из определенного HTML-кода - PullRequest
1 голос
/ 09 ноября 2011

возможно ли получить выделение из определенной строки? Например:

str = "<li>Some text...</li>";

Теперь я хочу получить этот текст между тегами "li", используя переменную str. в качестве ввода. Я попробовал что-то подобное, но это не сработало:

$(str + 'li').html();

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 09 ноября 2011

Попробуйте вместо этого

$(str).html()

http://jsfiddle.net/kSpBp/

Как указано в комментариях, стоит назвать разницу между html () и text () .

text () будет «Получать объединенное текстовое содержимое каждого элемента в наборе соответствующих элементов, включая их потомков».

html () будет «Получать содержимое HTML первого элемента в наборе соответствующих элементов».

На практике это будет выглядеть так:

str = "<li>This is so <span>great!</span></li>"
$(str).html() // "This is so <span>great!</span>"
$(str).text() // "This is so great!"
1 голос
/ 09 ноября 2011

Чтобы найти HTML-код внутреннего <li>, введите:

var str = "<div>hello</div><ul><li>Some text...</li><li>second item</li></ul>";
var myText = $(str).find("li").html();

(обратите внимание, что это даст вам внутренний HTML только для первого элемента списка)

Живой тестовый пример .

Редактировать: похоже, что для более «сложных» вещей вы должны добавить HTML-код к фактическому DOM, чтобы jQuery мог его правильно проанализировать.

Для этого добавьте в документ контейнер-пустышку:

<div id="DummyContainer"></div>

Затем используйте вместо этого такой код:

var str = '<div>hello</div><ul><li>Some text...</li><li>second item</li></ul><input type="hidden" name="some_int" value="15" />';
var container = $("#DummyContainer");
container.hide().html(str);
var myVal = container.find("input").val();
alert(myVal);

Обновлен jsFiddle .

1 голос
/ 09 ноября 2011
str = "<li>Some text...</li>";
$(str).text();
0 голосов
/ 09 ноября 2011

попробуй:

alert($('<li>Some text...</li>').text());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...