在jquery中为element设置新的id

时间:2012-05-03 04:45:27

标签: jquery

我有代码用来改变jquery元素的新id。

$('.trclick').click(function(){
  var id = $(this).attr('id');
  var idright = split_right(id,'__');
  var val = $('#ims_master_test_day1__'+idright).val();

  $('#ims_master_test_day').attr( 'id', 'ims_master_test_day__' + idright );
});

它有效,但只有一个有效。请帮我。谢谢!

2 个答案:

答案 0 :(得分:6)

我会假设你的意思"它只在第一次被称为"当你说"它工作但它只活动一个。"原因是这行代码:

$('#ims_master_test_day').attr( 'id', 'ims_master_test_day__' + idright );

您通过其ID获取元素,然后更改它。它第二次没有工作,因为该元素不再具有该id。您可以通过执行以下操作来解决此问题:

var test_day = $('#ims_master_test_day')

$('.trclick').click(function(){
  var id = $(this).attr('id');
  var idright = split_right(id,'__');
  var val = $('#ims_master_test_day1__'+idright).val();

  test_day.attr( 'id', 'ims_master_test_day__' + idright );
});

答案 1 :(得分:0)

第一次更改id后,您再也找不到要更改id的元素

// this won't work the second time because the id is different now
$('#ims_master_test_day').attr( 'id', 'ims_master_test_day__' + idright );

因此,您需要修改代码以便每次都更改ID。例如,像这样的东西可能会起作用:

// cache the current id in some variable somewhere :)
var currentId;
$('.trclick').click(function(){
  var id = $(this).attr('id');
  var idright = split_right(id,'__');
  var val = $('#ims_master_test_day1__'+idright).val();

  $('#'+currentId).attr( 'id',  'ims_master_test_day__' + idright);

  // set the current id
  currentId = 'ims_master_test_day__' + idright;
});