2011-03-03 58 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') 
相關問題