2

我有一个页面,其中 ID 更改为ctl00_MainContent_txt_insurance. 在这种情况下,我不能将实际 ID 用作$("#txt_insurance"). 所以我所做的是使用$("#<%= txt_insurance.ClientID %>"),现在可以正常工作了。

但是现在如果我想替换上面的 ID 并显示它,我这样做了:

divToChangeVisible = $("#<%= txt_insurance.ClientID %>");
divToChangeVisible.replace("txt_", "val_").show();

这会给我一个对象并抛出一个错误,说不能被替换。有没有办法获得txt_insurance身份而无需更换ctl00_MainContent_

编辑::如果我这样做$("#<%= txt_insurance.ClientID %>").attr('id')将再次返回动态ID ...

4

1 回答 1

2

您可以使用 Jquery 选择器,例如“ID 以”结尾:-

$("[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 + "]");
 });
于 2013-02-06T11:44:19.343 回答