我有一个页面,其中ID已更改为ctl00_MainContent_txt_insurance
。在这种情况下,我无法将实际ID用作$("#txt_insurance")
。所以我所做的就是使用$("#<%= txt_insurance.ClientID %>")
,现在效果很好。
但是现在如果我想替换上面的ID并显示它,我就这样做了:
divToChangeVisible = $("#<%= txt_insurance.ClientID %>");
divToChangeVisible.replace("txt_", "val_").show();
这会给我一个对象并抛出一个错误,说无法替换。有没有办法让txt_insurance
成为Id而无需替换ctl00_MainContent_
?
编辑:: 如果我$("#<%= txt_insurance.ClientID %>").attr('id')
这将再次返回动态ID ...
答案 0 :(得分:2)
您可以使用Jquery选择器,例如“ID ends with”: -
$("[id$='txt_insurance']")
上面的语句获取ID以“txt_insurance”结尾的元素。
举个例子: -
var eleid=$("[id$='txt_insurance']").attr('id');
var rep=eleid.replace("txt_", "val_");
alert(rep);
$("[id$='txt_insurance']").attr('id',rep);
//this will replace old ID with new which is 'ctl00_MainContent_val_insurance'
更新: -
var ele=eleid.split("_");
alert(ele[ele.length-2]+'_'+ele[ele.length-1]);
var originalid=ele[ele.length-2]+'_'+ele[ele.length-1];
// originalid will give you original id of element :-
所以你可以继续: -
$('.myform :input').each(function ()
{
var id = this.id;
var orgid=id.split("_");
var orgid1=orgid[orgid.length-2]+'_'+orgid[orgid.length-1];
var id2 = $("[id$=" + orgid1 + "]");
});