2014-02-15 72 views
0

我有HTML这样的。如何使用jQuery遍历到<br>标签?如何遍历jQuery中的DOM对象?

条件:

  1. 不应该使用类属性。
  2. 不应该使用分裂法。

例如:

<html> 
<body> 
<div> 
    <div> 
hello 
    </div> 
123 
<br> 
paragraphs 
<br> 
escapes 
<br> 
</div> 
</body> 
</html> 

对我来说,唯一的选择就是使用<br>标签,遍历 所以我怎么能遍历<br><br>后得到下一个数据。

我试图像这样得到HTML,而是通过使用<br>无法循环。

var html=$(body).html(); 

输出我需要:
“逃脱”

能否请你帮我通过<br>标签穿越?

回答

1

你正在寻找的文本都没有自己的标签中。它们被称为文本节点,而jQuery没有简单的方法来抓取它们。但是你可以用你的jQuery使用一些原始的JavaScript来做到这一点。

在这个例子中,脚本抓住所有的外DIV中的文本节点(contents()争夺每一个类型的子节点,然后filternodeType==3争夺只是文本节点),并通过他们循环,提醒每个:

$('body > div').contents().filter(function() { 
     return this.nodeType == 3; 
    }) 
    .each(function(){ 
     alert($(this).text());} 
    ); 

你会看到,它只是找到段前外格内,最后断行后的空白频段(警报是空的第一个和最后一个文本节点),而且还发现每一块<br>小号

+0

当我尝试以上方法。在警报我只得到空的空间 – user3206085

0

尝试以下操作:

$('br').each(function(){ 
    console.log($(this).val()); 
}); 

检查以下链接了解更多信息: http://api.jquery.com/jquery.each/

希望它能帮助。

+0

PS之间的文本:不要忘了没有,如果你找到answe接受答案r很有用;) – DenisR

+1

换行符没有值(或文本)。 OP需要将文本打包在自己的标记中(如Pranav所示),或者抓取文本节点(如我所建议的那样)。 – Faust