2012-07-20 120 views
0

我知道應該是很簡單,但我只是不明白這一點。如何使用jQuery獲取此屬性?

我使用克隆到<li>複製元素:

var li = $('.selected_list .template').clone(); 

名單有以下三個項目:

<li> 
    <input type="hidden" value="" class="item_id" name="item_id[]"> 
    <div class="col_rating"> 
    <input type="textbox" value="" maxlength="3" class="item_rating" name=""> 
    </div> 
</li> 

我可以使用以下方法來改變item_id輸入的內容:如何更改的值是包裹在div裏面嗎?

我試着用>訪問孩子,但沒有奏效。

您的幫助深表感謝:)

更新
我能夠改變item_id的價值。問題是,如何更新col_rating輸入的name屬性?

回答

2
$('.item_rating', li).val('250'); 
+0

謝謝@adeneo。這就像一個魅力,它簡化了很多代碼。每天都會學到新的東西:) – Steven 2012-07-20 22:40:48

1

使用.val()設置元素的值。不是.prop(),而是.attr()

li.find('.item_id').val('250'); 
+0

我以爲''prop()'來解決'attr()'的問題。不能使用'prop()'來設置和獲取值嗎? – Jashwant 2012-07-20 22:14:10

+0

@ matt-ball使用'prop'工作得很好 - 因爲我可以改變'item_id'輸入的值。我只是無法改變div內的輸入。 – Steven 2012-07-20 22:17:05

1

用逗號替換冒號。另外,li已經是一個jQuery對象,不需要重新包裝它。

li.find('.item_id').prop('value', '250'); 

事實上,而不是設置使用.prop()屬性,使用.val()

li.find('.item_id').val('250'); 
+0

我實際上也在改變'name'屬性。所以要一氣呵成(改變多個屬性)我使用'prop({})'。那麼'item_rating'呢? – Steven 2012-07-20 22:11:51

+0

'prop'有什麼問題。上次我最後的結論是'我可以使用道具與任何財產'。 – Jashwant 2012-07-20 22:12:15

+1

@Jashwant沒有錯丙:'支柱(「值」,「250」)'設置屬性'value'到'250',這會導致文本字段與'250'來填充。 '.val(250)'確實是一樣的東西,但它看起來更明顯(並且需要更少的字符)。 – 2012-07-20 23:13:37

0
li.find('.item_rating').val('250') 
0
var li = $('.selected_list .template').clone(); 
li 
    .find('.item_id').prop({ // find item_id and change properties 
    'value': '250', 
    'name': 'name1' 
    }) 
    .end() // jump to list again 
    .find('.item_rating').prop({ // find .item_rating and change properties 
    'value': '150', 
    'name': 'name2' 
    }) 
    .appendTo('.selected_list'); // append to list (you may have something else) 

Demo

+0

@Steven檢查以上答案 – thecodeparadox 2012-07-20 22:26:28