0

这会抓取 td 标签等

<script type=”text/javascript”&gt;

var td = document.getElementsByTagName(“td”);
for (var i = 0; i < td.length; i++) {
    document.write(‘td #’ + i + ‘&lt;br />’);
}

</script>

我如何使其等效于抓取某些文本

例如,如果我有

hello world
by world
hello goodbye
yellow submarine
yo hello

我如何抓住所有文本中的“你好”

4

4 回答 4

3

使用 jQuery 的contains 选择器应该可以帮助您。

http://jsfiddle.net/akxWF/1/

JS

$('body').find('*:contains("hello")').each(function(){
    var h = $(this).html(); 
    //alert(h); 
    h = h.replace('hello', '<span class="highlight">hello</span>');
    $(this).html(h); 
}); ​

HTML

<table>
    <tr>
        <td>hello some more text</td><td>test</td>   
    </tr>
</table>
<div>hello testing<div>More data</div></div>
<span>hello</span>

CSS

.highlight{
 background-color:yellow;    
}​
于 2012-05-12T03:48:44.200 回答
1

将所有“hello”包装在 span 标签中并给它一个类“hello”

<span class="hello">hello</span> world
by world
<span class="hello">hello</span> goodbye
yellow submarine
yo hello

使用 jQuery

var allHello = $('.hello').text();

您可以做的其他方法是使用正则表达式,但如果您知道您的内容,则不需要它。

于 2012-05-12T03:46:21.277 回答
0

屏幕抓取的常用方法是将需要捕获或搜索的文本放入带有 ID 的 DIV 标记中。完成此操作后,您将能够对 DIV 标记的 ID 执行 getElementsByTagName 以获取整个文本。

希望这很清楚。如果这不是您想要的,我建议您附加更具体的问题。

于 2012-05-12T03:40:42.250 回答
0

我如何抓住所有文本中的“你好”

我不确定我是否得到了这个问题,但要抓住 "hello" 你可以这样做:

var td = document.getElementsByTagName('td')[0],
    td = (td.textContent || td.innerText || ""),
    hello = td.match(/hello/gi);

这将返回一个包含所有“hello”的常规 javascript 数组?

小提琴 ​</p>

于 2012-05-12T05:02:20.977 回答