如何使用 Jquery 将类添加到触发器的上部元素?

发布于 2024-08-25 05:04:53 字数 946 浏览 6 评论 0原文

我正在研究 Jquery 手风琴的东西。我想向包含手风琴触发器 的 div 添加一个类。标签。你可以看看我的代码。当单击“日本经济衰退时尚视频”标题时,我想将“第一个”类名称添加到第一个“newsitems”类中。

        <!-- news items starts-->
        <div class="newsitems">
          <h3 class="business"> <a href="#" title="expand"><img src="images/expand_icon.gif" alt="collapse" class="collpase" /> Recession fashion in Japan Video</a> </h3>
          <p class="timestamp">0100hrs</p>
        </div>
        <!-- news items ends-->
        <!-- news items starts-->
        <div class="newsitems">
          <h3 class="sports"> <a href="#" title="expand"><img src="images/expand_icon.gif" alt="collapse" class="collpase" /> Murray survives five-set thriller at Wimbledon</a> </h3>
          <p class="timestamp">0100hrs</p>
        </div>
        <!-- news items ends-->

I am working on a Jquery accordion stuff. I want to add a class to the div that contains the accordion trigger <a> tag. You can look at my code. I want to add "first" class name to just first "newsitems" class when clicked "Recession fashion in Japan Video" title.

        <!-- news items starts-->
        <div class="newsitems">
          <h3 class="business"> <a href="#" title="expand"><img src="images/expand_icon.gif" alt="collapse" class="collpase" /> Recession fashion in Japan Video</a> </h3>
          <p class="timestamp">0100hrs</p>
        </div>
        <!-- news items ends-->
        <!-- news items starts-->
        <div class="newsitems">
          <h3 class="sports"> <a href="#" title="expand"><img src="images/expand_icon.gif" alt="collapse" class="collpase" /> Murray survives five-set thriller at Wimbledon</a> </h3>
          <p class="timestamp">0100hrs</p>
        </div>
        <!-- news items ends-->

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

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

发布评论

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

评论(4

悲念泪 2024-09-01 05:04:53

您正在寻找 closest 方法,该方法找到最里面的父级包含一个元素。

例如:

$('div.newsItems h3 a').click(function() { 
    $(this).closest('div.newsItems').addClass('first');
});

You're looking for the closest method, whch finds the innermost parent containing an element.

For example:

$('div.newsItems h3 a').click(function() { 
    $(this).closest('div.newsItems').addClass('first');
});
一袭水袖舞倾城 2024-09-01 05:04:53
$('div.newsitems h3 a').click(function() {
    $(this).parent().parent().addClass('first');
});
$('div.newsitems h3 a').click(function() {
    $(this).parent().parent().addClass('first');
});
谁与争疯 2024-09-01 05:04:53

此外,我们应该添加类似以下行的内容,以在单击另一个触发器后删除类:

var dropDown = $(this).parent().next().next(); /* This is configured for my script. Yours may be different*/
$('div.newsitems').not(dropDown).removeClass('first');

Also we should add something like below lines to remove class after clicking another trigger:

var dropDown = $(this).parent().next().next(); /* This is configured for my script. Yours may be different*/
$('div.newsitems').not(dropDown).removeClass('first');
聽兲甴掵 2024-09-01 05:04:53

只是为了一个替代答案。

$('div.newsItems').click(function(e){
    if($(e.target).is("IMG")){
        $(this).addClass("first");
    }
}

编辑:if($(e.target).is("a")){ 更改为 IMG,正如 SLaks 指出的那样,我错过了那个标签。

Just for an alternative answer.

$('div.newsItems').click(function(e){
    if($(e.target).is("IMG")){
        $(this).addClass("first");
    }
}

Edit: Changed the if($(e.target).is("a")){ to IMG as SLaks pointed out that I missed that tag.

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