function redundantSee() {
var optionSet1 = $('.wrapper:eq(0)'),
optionSet2 = $('.wrapper:eq(1)');
optionSet1.find('.options').each(function(){
var self = $(this),
input = self.find('input'),
title = self.find('.title').text(),
value = input.val(),
source = self.find('img').attr('src'),
id = input.attr('id'),
listItem = $('<li/>', {'value': value, 'id': id }),
imageElement = $('<img/>', {'src': source, 'title': title});
$('div.corresponding1').append(nameListItem);
listItem.append(imageElement);
});
optionSet2.find('.options').each(function(){
var self = $(this),
input = self.find('input'),
title = self.find('.title').text(),
value = input.val(),
source = self.find('img').attr('src'),
id = input.attr('id'),
listItem = $('<li/>', {'value': value, 'id': id }),
imageElement = $('<img/>', {'src': source, 'title': title});
$('div.corresponding2').append(listItem);
listItem.append(imageElement);
});
}
我已經簡化了這個帖子,因爲將要超過4個選項,通過設置此功能循環。有人可以幫我幹這些jQuery每個循環?
我在搞清楚如何把所有重複代碼的到的東西更易於管理的問題。
但由於每個選項組都有它自己的每個循環中,$(本)變量(以及所有相應的變量)是特定於在(」可供選項)元素上運行的循環。
如果我做一個每個迴路,並使用一個計數器,像這樣:
$('wrapper').each(function(i){ // ... });
我仍然會碰到需要重新聲明特定於optionSet輪到迴路中的所有我的新變量的問題。
有人可以幫我找出我如何可以凝聚這讓我不經常我每次添加設置功能的新選項時重複相同的代碼?
編輯:$(「div.corresponding」)元件是用於每一個完全不同的,所以它們不能用計數器遞增。 (例如一個可能是$( 'div.foo')或$( 'div.foo ul.bar')
這屬於http://codereview.stackexchange.com/。 – jfriend00
_ 「如果我每個循環都做一個循環並使用一個計數器......我仍然遇到需要重新聲明所有新的問題特定於該選項的變量Set循環「_ - 爲什麼?對於你顯示的代碼,不是''div.corresponding1''位是兩個循環的唯一區別嗎?你可以用櫃檯來處理。 – nnnnnn
您應該創建一個重用的函數。該參數應該是$ ELEM($(本))和$容器($(「div.correspondingx」)) –