0

我知道应该很简单,但我就是不明白。

我正在使用克隆来复制一个<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

4

5 回答 5

2
$('.item_rating', li).val('250');
于 2012-07-20T22:10:02.753 回答
1

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

li.find('.item_id').val('250');
于 2012-07-20T22:06:39.347 回答
1

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

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

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

li.find('.item_id').val('250');
于 2012-07-20T22:06:56.557 回答
0
li.find('.item_rating').val('250')
于 2012-07-20T22:08:52.590 回答
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)

演示

于 2012-07-20T22:22:15.933 回答