如何在td内容的每次迭代中提取文本和链接html

时间:2015-12-27 18:07:36

标签: jquery html

我正在迭代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。感谢

1 个答案:

答案 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)获取文字。

Live Fiddle