我正在迭代td和td的内容中有文本和链接。我尝试使用此代码在警报中显示文本和HTML,但未成功
var $list = $('<ul />');
var strData='';
$elements.each(function(){
if($(this).html()===null)
{
strData=strData+$(this).text();
alert($(this).text());
}
else
{
strData=strData+$(this).html();
alert($(this).html());
}
var $item = $('<li />').append($(this));
$list.append($item);
});
完整代码在这里https://jsfiddle.net/tridip/41s1pq3a/26/
请告诉我如何在每次迭代的警告框中显示文本和html。感谢
答案 0 :(得分:1)
所以在elements
jQuery对象中,您有1
和所有<a ... > .. </a>
以及所有<img...>
,当您尝试获取text()
时只需获取该节点的innerHTML
,您需要.outerHTML
之类的内容。这将解决您的问题,但您不应直接使用.outerHTML
,因为它的浏览器兼容性不佳。
您可以使用此功能
function getOuterHtml($el){
var wrapper = document.createElement('div');
wrapper.appendChild($el[0].cloneNode(true));
return wrapper.innerHTML;
}
非常自我解释。
现在使用getOuterHtml($el)
获取文字。