2012-08-28 84 views
1

我不知道在這裏使用的術語是什麼,但有通過他們的階級選擇他們時,不同的值分配給多個不同元素的方法嗎?在下面的代碼,我想有一個與類=「去」與它們相鄰的(表妹)與類「值」輸入元素的值來填充所有元素。 (事實上​​,它更復雜,但這是我簡化的問題)。指定不同的價值相同的類選擇在jQuery的

<tr> 
    <div id="samp1"> 
    <td>Sample 1</td> 
    <td><input class="value" type="number" value="100"></td> 
    <td><span class="out"></span></td> 
    </div> 
</tr> 
<tr> 
    <div id="samp2"> 
    <td>Sample 2</td> 
    <td><input class="value" type="number" value="200"></td> 
    <td><span class="out"></span></td> 
    </div> 
</tr> 

我可以像這樣得到的表妹值:

$('.out').closest('div').find('.value').val(); 

,但我在爲如何分配比較這些值給每個元素的損失,而無需該值是相同的跨越多個元素...例如:

$('.out').html($('.out').closest('div').find('.value').val()); 

給了我價值,但它在文檔中(從輸入#SAMP1在這種情況下,該值)分配第一值ALL的跨度,包括#samp2中的跨度。

我覺得我在尋找沿

$('.out').html($(this).closest('div').find('.value').val()); 

線的東西但是這顯然是行不通的...
感謝您的幫助。

+2

你的HTML是無效的。 – Peter

+1

你不能有一個'div'保持'td'(表數據)元素! –

+0

好的謝謝。我只是把它放在那裏有一個家長,我可以更容易地識別......我就用作爲父。 – tlambert

回答

1

使用jQuery.each遍歷所有.out元素。

$('.out').each(function(){ 
    $(this).html($(this).closest('div').find('.value').val()); 
}); 

http://api.jquery.com/jQuery.each/

描述:一個通用的迭代函數,它可以用於無縫 遍歷對象和數組。陣列和具有長度屬性陣列狀 對象(諸如函數的參數對象) 由數字索引重複,從0到長度-1。其他對象是 通過它們的命名屬性進行迭代。

+0

非常感謝。那就是訣竅。我將刪除div並使其最接近('tr')以使HTML有效。 – tlambert

2
$('.out').each(function(index, elem) { 

    var out = $(elem); 
    out.html(out.parent().parent().find('.value').val()); 

}); 
+2

afaik它應該''(out)'? – Peter

+0

@PeterSzymkowski肯定它! :) –

+0

是的,這是行不通的。出來只是dom元素 – jantimon

0
$('.out').each(function(){ 
    $(this).html($(this).closest('tr').find('.value').val()); 
}); 

另一件事是你的HTML是無效的。

你不能把<div>標籤之間<tr>

+0

感謝您指出。 – tlambert