jquery .each函数

时间:2010-02-02 01:53:52

标签: jquery html

如果我有5个带有.inputBox类的输入框,我的jquery函数会在每个.inputBox行之后添加这些标记5次。那是为什么?

我只想在每个.inputBox之后插入一次这些标签。

任何人都知道怎么做?

function addImages() {          

     $(".inputBox").each(function() {

          $('.inputBox').after("<img src=\"Images/thumbs_up_48.png\" class=\"thumbV\" id=\"up\" />");
          $('.inputBox').after("<img src=\"Images/thumbs_down_48.png\" class=\"thumbV\" id=\"down\" />");
    });
}

html

<label for="FirstName">First Name</label>
<input type="text" class="inputBox" name="FirstName" title="First Name Here" id="firstName" />

3 个答案:

答案 0 :(得分:1)

使用:

$(this).after("<img src=\"Images/thumbs_up_48.png\" class=\"thumbV\" id=\"up\" />");
$(this).after("<img src=\"Images/thumbs_down_48.png\" class=\"thumbV\" id=\"down\" />");
每次调用它时,

$('。inputBox')都会遍历整个DOM。

更好的方法是

$(".inputBox")
        .after("<img src=\"Images/thumbs_up_48.png\" class=\"thumbV\" id=\"up\" />")
        .after("<img src=\"Images/thumbs_down_48.png\" class=\"thumbV\" id=\"down\" />");

不要忘记'接受'一个适合你的答案。

答案 1 :(得分:0)

您可以简单地丢失每个,只需使用

 $('.inputBox').after("<img src=\"Images/thumbs_up_48.png\" class=\"thumbV\" id=\"up\" />");
 $('.inputBox').after("<img src=\"Images/thumbs_down_48.png\" class=\"thumbV\" id=\"down\" />");

答案 2 :(得分:0)

您可能不需要each,是吗?根据您的代码和patrick提出的修复程序,我认为您可以在没有each()调用的情况下使用原始代码。