Перебирать элементы в переменной - PullRequest
3 голосов
/ 23 октября 2011

Как перебрать HTML, хранящийся в переменной для тегов 'ul'?Это то, что у меня есть, но функция alert () даже не срабатывает, я немного потерян ...

var data = 'HTML';
$('ul', data).each(function(i,v) {
    var theTag = v.tagName;
    var theElement = $(v);
    var theValue = theElement.html();
    alert(theTag+'\n'+theElement+'\n'+theValue);
});

Спасибо

Ответы [ 5 ]

6 голосов
/ 23 октября 2011

Вы пытаетесь использовать форму "селектор, контекст" вызова $() :

jQuery (селектор [, контекст])
селектор Строка, содержащая выражение селектора
context Элемент DOM, Document или jQuery для использования в качестве контекста

AСтрока HTML не соответствует ни одной из вещей, которые context должны быть такими, чтобы jQuery не знал, что делать с вашими аргументами, и делает неверные предположения.

Вы, вероятно, хотите сделать это такэто:

$(data).filter('ul').each(function(i,v) {
    //...
});

Демонстрация: http://jsfiddle.net/ambiguous/gxGB8/

Или, если вы не знаете, на каком уровне будут элементы <ul>, оберните HTML в <div> и используйте find вместо filter:

$('<div>' + data + '</div>').find('ul').each(function(i, v) {
    //...
});

Демо: http://jsfiddle.net/ambiguous/tM4ua/

2 голосов
/ 23 октября 2011

.val() возвращает значение ввода формы.
Не работает с произвольными элементами.

Требуется .text() или .html().

EDIT : чтобы найти элементы в строке HTML, вы должны написать $(html).find('ul')

0 голосов
/ 23 октября 2011

Проверьте это скрипка

Это может помочь!

0 голосов
/ 23 октября 2011

Попробуйте это:

$('ul').each(function() {
    // Gets underlying element object
    var theElement = $(this).get(0);

    var theTag = theElement.tagName;

    // Can also use .text() if you want just the textual content
    var theValue = $(this).html();

    // theElement can't be printed, it's an object
    alert(theTag+'\n'+theValue);
});

Здесь я предполагаю, что вам нужно содержимое ряда <ul> тегов, а не <li> частей одного списка.

0 голосов
/ 23 октября 2011

Попробуйте удалить область контекста данных из вашего ul селектора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...