2012-07-16 40 views
2

我有一个简单的函数,我试图按组追加结果。我已经能够显示单个表单的结果,但不确定要继续的位置。这是Jsfiddle的功能。 http://jsfiddle.net/XBSVn/按组添加结果

+0

你所说的“群体”是什么意思?你的意思是一次追加多个元素吗? – Lix 2012-07-16 21:00:12

+0

我需要将这个函数分别应用于每个类。现在它从第一类元素中获得结果并将结果附加到每个后面的类中。如果你看看我的链接,你会看到我想要做什么 – 2012-07-16 21:03:36

+0

你到底想做什么?如果文本框中只有一颗星星,您只想显示与其对应的一颗星星? – Kishore 2012-07-16 21:11:04

回答

3

尝试。注意,你的类名之间的差别,你的选择只有选择第一输入元件:

$(function() { 
    $('.ratingroups input').each(function(i, v) { 
     var star = '&#9733'; 
     var val = parseInt(this.value, 10) 
     for (var i = 0; i < val; i++) { 
      $(this).parent().siblings('div').append($('<div>').html(star).text())   
     } 
    }); 
}); 

DEMO

+0

这是错误的....检查你的结果在Firebug中。 – 2012-07-16 21:18:39

+0

@ RokoC.Buljan是什么让它错了? – undefined 2012-07-16 21:20:07

+0

错误地认为'

'为空。 (对不起,在第一条评论中不提)。 – 2012-07-16 21:23:58

1

这里的问题是类名选择器(您使用.ratinggroups和.ratingroups)以及文本框选择器(您总是得到第一个文本框来检查值)中的拼写错误。

入住此更新的jsfiddle:http://jsfiddle.net/XBSVn/12/

你的HTML改为:

<form class="ratingroups"> 
    <p><input class="asstars" value="5"/> </p> 
    <div class="rstars"></div> 
</form> 
<form class="ratingroups"> 
    <p><input class="asstars" value="4"/> </p> 
    <div class="rstars"></div> 
</form> 
<form class="ratingroups"> 
    <p><input class="asstars" value="3"/> </p> 
    <div class="rstars"></div> 
</form> 
<form class="ratingroups"> 
    <p><input class="asstars" value="2"/> </p> 
    <div class="rstars"></div> 
</form> 
<form class="ratingroups"> 
    <p><input class="asstars" value="1"/> </p> 
    <div class="rstars"></div> 
</form> 

和您的Javascript功能来:

$(function() { 
    console.log($('.ratingroups input').length); 
    $('.ratingroups input').each(function() { 
     var asstars = $(this); 
     var stars = asstars.closest('.ratingroups').find('.rstars'); 
     var display = true; 
     if (asstars.val() == '5') { 
      stars.append('<span>&#9733;&#9733;&#9733;&#9733;&#9733;</span>'); 
      display = false; 
     } 
     else if (asstars.val() == '4') { 
      stars.append('<span>&#9733;&#9733;&#9733;&#9733;</span>'); 
      display = false; 
     } 
     else if (asstars.val() == '3') { 
      stars.append('<span>&#9733;&#9733;&#9733;</span>'); 
      display = false; 
     } 
     else if (asstars.val() == '2') { 
      stars.append('<span>&#9733;&#9733;</span>'); 
      display = false; 
     } 
     else if (asstars.val() == '1') { 
      stars.append('<span>&#9733;</span>'); 
      display = false; 
     } 
     if (display) { 
      stars.css('display', 'none'); 
     } 
     else { 
      stars.css('display', 'block'); 
     } 
    }); 
}); 
+1

我觉得像“教一个人钓鱼”的谚语适合在这里;) – Lix 2012-07-16 21:18:08

+0

谢谢!我对此很陌生。我喜欢尝试我自己的东西,但仍然是初学者... – 2012-07-16 21:28:53

+1

@Lix哈哈哈:)这就是*“当天的笑话”*! +1我只是对不接受Raminson的回答而感到抱歉... – 2012-07-16 21:32:09