2011-03-03 60 views
1

我有一个DIV块,包含3个DIV元素:upvote,votes和downvote。当我点击upvote或downvote并在JQuery代码块中调用parent.html(html)时,它会覆盖upvote或downvote图标上的投票计数。我将使用哪种JQuery调用来访问DIV类,“投票”?我会找到父元素的父级,然后搜索“投票”类吗?有什么方法可以按名称找到元素的兄弟姐妹吗?对于新手问题抱歉,但我对JQuery仍然很陌生!如何使用JQuery设置元素的兄弟的HTML

回答

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()


响应编辑质疑从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. 
     }); 
+0

感谢您的回复!除了更新所有“投票”类的部分之外,这种方法是有效的。有没有什么方法可以使用$ this关键字来更新选定的关键字? – 2011-03-03 01:32:42

+0

@约翰史密斯:你可以给你一个[JS小提琴](http://jsfiddle.net/)你目前的加价? – 2011-03-03 01:35:51

+0

当然可以!这个代码的问题是,它更新所有“投票”类,而不是只选择一个。 http://jsfiddle.net/cMPJX/ – 2011-03-03 01:37:49

1
$('selector').siblings('.votes') 
相关问题