Javascript 需要使用jQuery在dom树中查找元素的更优雅的方法吗

Javascript 需要使用jQuery在dom树中查找元素的更优雅的方法吗,javascript,jquery,Javascript,Jquery,我有几个元素在一个元素中四处飞舞,需要在窗口完成加载时进行更改($(window.load…) 当脚本加载时,我一直在努力寻找一种更优雅的方法来查找字符串 下面值得注意的是,您还可以看到大量重复使用parent和next操作符 我试过最近的,但它只在dom树上出现一次(据我所知),而且父母从未真正对我起作用,但我可能用错了 前 此运行的HTML输出如下所示: <div class="boxy"> <div class="read"> <d

我有几个元素在一个元素中四处飞舞,需要在窗口完成加载时进行更改(
$(window.load…

当脚本加载时,我一直在努力寻找一种更优雅的方法来查找字符串

下面值得注意的是,您还可以看到大量重复使用
parent
next
操作符

我试过
最近的
,但它只在dom树上出现一次(据我所知),而且
父母
从未真正对我起作用,但我可能用错了

此运行的HTML输出如下所示:

<div class="boxy">
    <div class="read">  
        <div class="postmetadata">Vancity Buzz</div>
        <div class="articleTitle"></div>
    </div>
    <div class="rightCtrls"></div>
    <div class="initialPostLoad"></div>
    <div class="ajaxBoxLoadSource"></div>
    <div class="articleImageThumb">
        <a href="#">
            <img src="image.png" class="attachment-large wp-post-image" alt=""/>
        </a>
    </div>
</div>

城市嗡嗡声

我想您应该这样做:

$(".postmetadata:contains('Vancity Buzz')")
     .closest('.read') //Closest will get you to the parent with class .read
     .siblings('.articleImageThumb').hide(); //this will get you all the siblings with class articleImageThumb
指的是窗口,而不是您在if条件中检查的元素


我不知道你的意图是不是仅仅通过隐藏图像来获得空的锚标签。如果是这样,只需添加一个查找即可。

我认为您需要这样做:

$(".postmetadata:contains('Vancity Buzz')")
     .closest('.read') //Closest will get you to the parent with class .read
     .siblings('.articleImageThumb').hide(); //this will get you all the siblings with class articleImageThumb
指的是窗口,而不是您在if条件中检查的元素

我不知道你的意图是不是仅仅通过隐藏图像来获得空的锚标签。如果是这样,只需添加一个查找即可。

您可以这样做

$('.articleImageThumb img').toggle($(".postmetadata:contains('Vancity Buzz')").length)
如果有多个div,并且确实需要遍历,那么有多种方法

$(".boxy:has(.postmetadata:contains('Vancity Buzz'))").find('.articleImageThumb img').hide()

你可以这么做

$('.articleImageThumb img').toggle($(".postmetadata:contains('Vancity Buzz')").length)
如果有多个div,并且确实需要遍历,那么有多种方法

$(".boxy:has(.postmetadata:contains('Vancity Buzz'))").find('.articleImageThumb img').hide()


您是否调查过家长,您可以通过这样的选择器:

 $(this).parents('.boxy').find(".articleImageThumb")

但是要小心,如果有一个父方盒指向该方盒,parents()将返回它,因此您会找到multiple.articleImageThumb。

您是否查看过父方盒,您可以通过如下方式传递选择器:

 $(this).parents('.boxy').find(".articleImageThumb")

但是要小心,如果有一个父方盒指向该方盒,parents()将返回它,因此您会找到多个.articleMageThumb。

您的
$(此)
引用的窗口
parents()
不会神奇地只为您工作。它每次都会做手册上说的事情。试着阅读手册,确保你知道它是如何工作的。然后你就会知道你是否应该在这里使用它。你的
$(这个)
指的是
parents()窗口不会神奇地不适合你。它每次都会做手册上说的事情。试着阅读手册,确保你知道它是如何工作的。然后你就会知道你是否应该在这里使用它。@canacast有很多方法可以做到这一点。检查@:prodigitalson也回答。@cancast顺便问一下,你想单独隐藏图像,而锚定标记为空吗?@PSL问得好,但不是很好<代码>隐藏
只是一个占位符。我仍然需要弄清楚如何更改
src=“…”
路径来表示不同的站点,以获得更大的文章图像,并避免出现微小的无害RSS缩略图。@PSL又答对了!难怪你得了几千分!我希望你的善行能得到很多礼物。@canacast是的,就是这样语法是
.attr(attributeName,function(index,attr))
ref:。@canacast有很多方法可以做到这一点。检查@:prodigitalson也回答。@cancast顺便问一下,你想单独隐藏图像,而锚定标记为空吗?@PSL问得好,但不是很好<代码>隐藏只是一个占位符。我仍然需要弄清楚如何更改
src=“…”
路径来表示不同的站点,以获得更大的文章图像,并避免出现微小的无害RSS缩略图。@PSL又答对了!难怪你得了几千分!我希望你的善行能得到大量的礼物。@canacast是的,就是这样语法是
.attr(attributeName,function(index,attr))
ref:。