2011-04-24 53 views
1

我有使用jQuery插件星以下時的回調函數:jQuery的DOM屬性值

$('.star').rating({ 
    callback: function (value, link) { 
     { 
      if (response.session) { 
       $.post("update.php", { 
        uid: response.session.uid, 
        mid: $('.star').attr('name'), 
        val: value 
       }); 
       alert($('.star').attr('name')); 

      } 
     }); 
} 
}); 

和下面的HTML:

<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star" checked="checked"/> 
<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star"/> 

我怎樣才能從jQuery的名字嗎?我試着像上面那樣做.attr,它返回undefined。我試圖做$($this).attr('name')並返回jQuery的花式盒名..

+0

嘗試'$(本)。 attr('name')' – Yeameen 2011-04-24 07:04:43

+0

@Yeameen不會工作,除非評級插件在事件上下文中工作(我懷疑) – JohnP 2011-04-24 07:06:44

回答

1
$('.star') 

名返回的jQuery對象的收集,所以你應該迭代它如:

$('.star').each(function() { 
    alert($(this).attr('name')); 
}); 

選中的元素被發現:

$('.star:checked').attr('name'); 

更新,(在答覆意見)爲多個組:

如果我有兩個星級套

$('.star:checked').each(function() { 
    alert($(this).attr('name')); 
}); 
+0

如果我有兩個星級評分集,我該如何得到那個被點擊的星星的名字?我上面的例子只顯示一組星級,而實際上在一個頁面中,你可以有超過1星級的評級..我想知道被點擊的星星的名稱。 – adit 2011-04-24 07:14:11

+0

更新了該問題的答案 – 2011-04-24 07:16:45

+0

打印所有檢查的對象?但不一定是我點擊的那個 – adit 2011-04-24 07:18:17

1
var nameOfCheckedStar = $('.star:checked').attr('name'); 

我假設你想要的檢查明星

+0

我想要點擊na我不一定是選中的那個..可以有多個選中的星級評分 – adit 2011-04-24 07:25:57

+0

好,因爲它是一個廣播組,選中的一個將永遠是你點擊的那個:) – JohnP 2011-04-24 07:27:31

+0

正如我上面提到的,我可以有多個星級評分相同class,star ...做上面提到的將返回第一個被選中的集合...即使我點擊了set-4,它也會始終返回第一個 – adit 2011-04-24 07:30:04