2010-02-02 77 views
2

如果我有5個輸入框,類爲.inputBox,那麼我的jquery函數會在每個.inputBox行後面添加這些標記5次。這是爲什麼?jquery。每個函數

我只想在每個.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" /> 

回答

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\" />"); 

$( '輸入框')將通過整個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\" />"); 

而且不要忘了「接受」,你的作品的答案。

+0

沒有答案在我的其他帖子中工作。我找到了.each函數並嘗試了這一點,並且您的答案奏效了。謝謝! – Catfish 2010-02-02 02:00:21

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\" />"); 
+0

對不起。爲了便於閱讀,我留下了一段內容。我需要.each,因爲我使用$('inputBox')。each(function(index))和我使用索引值附加到id上下,所以它會上漲+索引和下+索引。 – Catfish 2010-02-02 02:27:46

0

你可能不需要each,你呢?根據你的代碼和帕特里克提出的修復,我認爲你可以使用你的原代碼而不需要撥打each()