javascript - JQuery:如何获取 DOM 树中所有最底层的 child ?

标签 javascript jquery arrays dom

基于下面的 DOM 树,我想得到所有的 <p>元素是每个带有 message 的 div 的子元素作为它的类并将它们全部放在一个数组中。这将创建一个对象数组。

备注:ul并且所有级别的所有子级都可以在任何给定时间动态添加到 dom。

我该怎么做?

我试过了

    var messages = $('.rightP').find('li>.message>p');
    $.each(messages,function(){
        console.log(this);
    });

但没有运气


DOM 树

<ul class="rightP">
    <li>
        <div class="sender">
            <p>David</p>
        </div>
        <div class="message">
           <p>Hello</p>
        </div>
    </li>
    <li>
        <div class="sender">
            <p>Watson</p>
        </div>
        <div class="message">
           <p>yes anything?</p>
        </div>
        <div class="message">
         ....
    </li>
    ...

</ul>

最佳答案

您使用了错误的 jQuery 选择器。将 $('.rightP').('li>.message>p') 替换为 $('.message > p') 或者您可以这样做.

var messages = jQuery('.message > p');

jQuery.each(messages, function (index, elem) {
    var message = jQuery(elem);
    console.log(message.text())
});

这是 working fiddle .

关于javascript - JQuery:如何获取 DOM 树中所有最底层的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130851/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'combineReducers' of undefined

javascript - 使用 jquery 或 iframe 加载外部内容?

c - 数组初始化 C

c++ - 为什么 C 数组在传递给函数时有错误的 sizeof() 值?

javascript - 在 WebView 中提交表单 - Swift 3.1

javascript - 使用 array.map() 计算二维数组列的平均值

javascript - 传单 geojson 不会显示标记

javascript - jquery 检测小键盘按键值

javascript - 如何为 div 制作倒曲线或边框半径

php - MySQL 使用 Select 填充数组字符串