如何在jQuery中遍历DOM对象?

时间:2014-02-15 06:52:38

标签: jquery html

我有像这样的HTML。如何使用<br>遍历jQuery代码?

条件:

  1. 不应使用类属性。
  2. 不应使用拆分方法。
  3. 例如:

    <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>标签吗?

2 个答案:

答案 0 :(得分:1)

您正在寻找的文本不在他们自己的标签内。它们被称为文本节点,而jQuery没有一种简单的方法来获取它们。但是你可以在你的jquery中使用一些原始的JavaScript来实现这一点。

在此示例中,脚本抓取outer-div内的所有文本节点(contents()抓取每种类型的子节点,然后filter nodeType==3抓取文本 - 节点),并循环通过它们,提醒每个人:

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

你会看到它在段落之前和最后一个换行符之后的外部div中找到了空格(对于第一个和最后一个文本节点,警报是空的)但是也找到了每个<br> s

之间的文字

答案 1 :(得分:0)

尝试以下方法:

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

请查看以下链接以获取更多信息: http://api.jquery.com/jquery.each/

希望它有所帮助。