想从td的内容中提取所有内部文本和链接

时间:2015-12-28 17:23:11

标签: jquery html

这是我的样本内容。

<table id='test' border=1><tr><td>hello....</td></tr>
<tfoot>
<tr class="webgrid-footer">
    <td colspan="6">1 
        <a href="Show3.html" >2</a> 
        <a href="Show3.html" >3</a> 
        <a href="Show3.html" >4</a> 
        <a href="Show3.html" >&gt;</a> 
        <a href="Show3.html" >&gt;&gt;</a>
    </td>
</tr>
</tfoot>
</table>

我的目标是从html元素中提取内部文本....如1 or 2 or &gt; or &gt;&gt;

这个脚本我用来获取内部文本...我有点接近但仍未给出正确的结果。所以请任何人看看并给我纠正的代码。

function getOuterHtml($el){
    var wrapper = document.createElement('div');
    wrapper.appendChild($el[0].cloneNode(true));
    return wrapper.innerHTML;
} 

var $elements = $('.webgrid-footer td').contents()
.filter(function() 
{
  return (this.nodeType === 3 && $.trim(this.nodeValue) !== '')
         || this.nodeType === 1;
});  

var $div = $('<div id="content" />');
var $list = $('<ul />');
var strData='';

$elements.each(function(){
    if($(this).html()===null)
    {
        alert(getOuterHtml($(this)));
    }
    else
    {
        alert(getOuterHtml($(this)));
    }
    var $item = $('<li />').append($(this));      
    $list.append($item);
});
$div.append($list);
//alert(strData);
$('#dv').append($div);

这里是js小提琴链接https://jsfiddle.net/tridip/ab69osqu/

寻找建议。感谢

1 个答案:

答案 0 :(得分:1)

您缺少以下

$(this).text();

而不只是做

$(this);

以下是更新的fiddle我相信这就是您要找的内容