我有代码用来改变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 );
});
它有效,但只有一个有效。请帮我。谢谢!
答案 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;
});