如何从匹配元素列表中选择子元素?

发布于 2024-10-15 19:40:35 字数 1423 浏览 2 评论 0原文

这个确实让我感到困惑:

我有一组“项目”,我想选择每组中的第一个

<div class="item">
    <table>
        <tr>
            <td>
                <h1>Test</h1>
                <pre>0</pre>
                <pre>
                    <code>1</code>
                </pre>
                <pre>
                    <code>2</code>
                </pre>
            </td>
        </tr>
    </table>
</div>
<div class="item">
    <pre>
        <code>3</code>
    </pre>
    <pre>
        <code>4</code>
    </pre>
</div>
<div class="item">
    <pre>
        <code>5</code>
    </pre>
</div>
<div id="output"></div>

我的 jQuery 代码如下所示:

$('.item:has(pre)').each(function(){

    text = $(this).filter('pre').html()
                  .replace(/</g,'&lt;').replace(/>/g,'&gt;') + "<br><br>";
    $('#output').append(text);

});

我希望输出是

 块的内容,但我什么也没得到。如果我对匹配的元素使用 .size() 函数,我每次都会得到 0。

上述代码可以在jsFiddle上找到: http://jsfiddle.net/george_edison/syLMD/8/< /a>

This one has really got me confused:

I have a group of 'items' and I want to select the first <pre> in each group.

<div class="item">
    <table>
        <tr>
            <td>
                <h1>Test</h1>
                <pre>0</pre>
                <pre>
                    <code>1</code>
                </pre>
                <pre>
                    <code>2</code>
                </pre>
            </td>
        </tr>
    </table>
</div>
<div class="item">
    <pre>
        <code>3</code>
    </pre>
    <pre>
        <code>4</code>
    </pre>
</div>
<div class="item">
    <pre>
        <code>5</code>
    </pre>
</div>
<div id="output"></div>

My jQuery code looks like this:

$('.item:has(pre)').each(function(){

    text = $(this).filter('pre').html()
                  .replace(/</g,'<').replace(/>/g,'>') + "<br><br>";
    $('#output').append(text);

});

I expect the output to be the contents of the <pre> blocks, but instead, I get nothing. If I use the .size() function on the matched elements, I get 0 every time.

The above code can be found on jsFiddle: http://jsfiddle.net/george_edison/syLMD/8/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幸福不弃 2024-10-22 19:40:35
$('div.item pre:first-of-type').each(function(){

text = $(this).filter('pre').html().replace(/</g,'<').replace(/>/g,'>') + "<br><br>";
$('#output').append(text);
});
$('div.item pre:first-of-type').each(function(){

text = $(this).filter('pre').html().replace(/</g,'<').replace(/>/g,'>') + "<br><br>";
$('#output').append(text);
});
初心 2024-10-22 19:40:35

.filter() 仅查看当前元素集,而 .find() 查看后代元素。

$('.item:has(pre)').each(function(){

    text = $(this).find('pre:first').html().replace(/</g,'<').replace(/>/g,'>') + "<br><br>";
    $('#output').append(text);

});

.filter() only looks at the current set of elements, whereas .find() looks at the descendants.

$('.item:has(pre)').each(function(){

    text = $(this).find('pre:first').html().replace(/</g,'<').replace(/>/g,'>') + "<br><br>";
    $('#output').append(text);

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文