Ich werde mit jQuery ein Element aus einem HTML-String erhalten, aber ich bekomme in meiner Konsole immer ein undefined .. Mein String ist:
<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>
und ich möchte den td.test bekommen.
Ich habe getestet:
console.log($('.test', '<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>').innerHTML);
console.log($('.test', '<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>').html());
console.log($('.test', '<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>').first().innerHTML);
und noch einiges mehr, aber nichts funktioniert: /
Kennt jemand eine Lösung für mein Problem?
Verwenden Sie zunächst jQuery.parseHTML
, um den HTML-Code in ein Array von Elementen zu parsen. Dann können Sie es in eine jQuery-Auflistung konvertieren und mit filter
die Auflistung auf Elemente beschränken, die einem Selektor entsprechen.
var html =
'<td class="test">asd</td>' +
'<td class="second">fgh</td>' +
'<td class="last">jkl</td>';
var text = $($.parseHTML(html)).filter('.test').text();
console.log(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Versuchen:
console.log($('<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>').filter('.test').html());
oder:
console.log($('.test', '<table><td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td></table>').html());
Sie können jQuery-Selektoren nicht für eine solche Sammlung von Knoten verwenden. Sie können einen einzelnen Knoten umschließen, um dies zu umgehen. Fügen Sie einfach z. ein umhüllender <tr>
-Knoten.
var htmlBits = '<tr>'
+ '<td class="test">asd</td><td class="second">fgh</td><td class="last">jkl</td>'
+ '</tr>';
Und dann wird es funktionieren:
console.log($('.test', htmlBits).text()); // outputs 'asd'
JSFiddle (Denken Sie daran, die Konsole zu sehen, um das Protokoll anzuzeigen).
Ich habe eine Antwort in der Form:
<div>...
</div>
<div>...
</div>
<div>...
</div>
Die Methode von @minitech führte zu einem Array von HTML-Knoten, bei denen der Selektor nicht funktionierte.
Also habe ich es ausprobiert und es hat gut geklappt :
$.ajax({
url:
success: function($data) {
var $parsed_data = $('<div/>').append($data);
var found = $parsed_data.find(".Selector");
...
}
});