如何使用jQuery获取此属性?

时间:2012-07-20 22:04:29

标签: 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输入的内容:

  $(li).find('.item_id').prop({
    'value': $(item).attr('id'),
    'name': 'item_id[]'
  });
  $(li).find('.col_rating').find('input.col_rating').prop('name','item_rating[]');

  $(li).find('.col_name').text($(item).find(('.assoc_name')).text());
  $(li).find('.col_cost > input.item_cost').val($('.info_container .unit_cost').val());

但是如何更改input内包含的div的值?

我尝试使用>来访问孩子,但这不起作用。

非常感谢您的帮助:)

更新
我可以更改item_id的值。问题是,如何更新name输入的col_rating属性?

5 个答案:

答案 0 :(得分:2)

$('.item_rating', li).val('250');

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

用逗号替换冒号。此外,li已经是一个jQuery对象,无需再次包装它。

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

实际上,不是使用.prop()设置属性,而是使用.val()

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

答案 3 :(得分:0)

li.find('.item_rating').val('250')

答案 4 :(得分: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