2011-04-24 56 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