2016-01-16 3 views
1

Я использую функцию JQuery для извлечения строки, содержащей некоторый код HTML, и обрабатываю ее локально. Строка:Невозможно перебрать элементы внутри строки HTML, используя JQuery 2.1.4

var return_data = '<div><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><span id="morerows">1</span></div>'; 

(. Я понимаю, <tr> должен войти внутрь <table> и не внутри <div>, но это, как мне нужен вход по какой-то причине, и это должно быть несущественным к вопросу под рукой) Что мне нужно представляет собой цикл через каждый <tr> и выводит содержимое на консоль. Я пробую это:

$(return_data).find("tr").each(function(){ 
    var myData = $(this).html(); 
    console.log(myData); 
}); 

Но вышеизложенное ничего не делает; нет выхода на консоли. Чтобы быть уверенным, я изменил вход console.log() на просто «привет» и, оказывается, элемент управления даже не входит в цикл. Что может быть причиной этого?

+0

Что показывает console.log ($ (это)) ;? –

+0

Нет смысла делать 'console.log ($ (this))', если цикл не вводится для начала. Вот что я сказал и в вопросе. Даже 'console.log (« hello »)' не выполнялся. – TheLearner

+1

'tr' игнорируются, потому что они не имеют смысла в div. – tkausl

ответ

1

Возможно, вам понадобится следующее. Оберните tr с помощью table и проведите через tr s вместо div.

var return_data = '<div><table><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr></table><span id="morerows">1</span></div>'; 

$(return_data).find("tr").each(function() { 
    var myData = $(this).html(); 
    console.log(myData); 
}); 
+0

Я не могу использовать тег

, потому что у меня уже есть существующая таблица на странице, к которой эти строки должны быть добавлены. Вот почему я получаю только строки с сервера. – TheLearner

+0

'tr' не может быть вложен в' div'. Это даже не будет отображаться, если вы не используете 'table'. @TheLearner – Azim

0

вам не хватает <table> тег в Уре HTML, попробуйте этот fiddle

var return_data = '<div><table><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr></table><span id="morerows">1</span></div>'; 
+0

Тег

не пропал без вести ... У меня его нет по какой-то причине. См. Редактирование в моем вопросе. – TheLearner

Смежные вопросы