如何使用JQuery设置元素兄弟的HTML

时间:2011-03-03 01:21:46

标签: javascript jquery html parent this

我有一个带有3个DIV元素的DIV块:upvote,votes和downvote。当我点击upvote或downvote并在JQuery代码块中调用parent.html(html)时,它会覆盖upvote或downvote图标上的投票计数。我将使用哪个JQuery调用来访问DIV类,“投票”?我会找到父元素的父元素然后搜索“投票”类吗?有什么办法可以通过名字找到元素的兄弟姐妹吗?很抱歉新手问题,但我仍然是JQuery的新手!

3 个答案:

答案 0 :(得分:2)

假设您的加价大约是:

<div>
    <div class="upvote">vote up</div>
    <div class="votes">0</div>
    <div class="downvote">vote down</div>
</div>

你可以使用:

$('.upvote').siblings('.votes');

或者:

$('.upvote').parent().find('.votes');

参考文献:

  1. siblings()JS Fiddle
  2. parent()
  3. find()
  4. <小时/> 已编辑以回应OP提出的问题(在评论中):

      

    哦,不,这不是一个问题,因为有一个以上的兄弟'.votes'div。问题是在给定的页面上有多个提交,当你提出一个提交时,其余提交也会被提升。我想这就是为什么我需要使用$ this或者其他东西才能使用所选的提交。有什么想法吗?

    我不确定你的意思是'给定页面上的多个提交内容',但我假设你的意思是,页面上有多个投票元素。如果是这种情况(并且我假设标记与我在本答案的第一部分中的近似值一致),您可以使用:

    $('.upvote').click(
        function(){
            $(this).siblings('.votes');
            // this is just a selector, it won't 'do' anything
            // other than select the element.
            });
    

答案 1 :(得分:1)

有几种不同的方法可以访问jQuery中的特定兄弟节点。有一个look at them all。您可能需要siblings()

答案 2 :(得分:1)

$('selector').siblings('.votes')