Jquery获取动态生成的控件Id

标签 jquery dynamic controls auto-generate

我有一个页面 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...

最佳答案

您可以使用 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 + "]");
 });

关于Jquery获取动态生成的控件Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14728172/

相关文章:

javascript - 登录表单不会消失

controls - Mapbox GL 如何创建自定义控件?

javascript - jquery scrolltop 仅适用于 jquery < 3.0.0

jquery - 在 Highcharts 中格式化 Xaxis 时间日期

java - 如何动态设置函数参数的类?

由于猴子补丁的能力,.NET 4 可以实现更好的单元测试/模拟?

php - 动态页面创建 PHP + MySQL

c# - 需要一个视觉控件来可视化逻辑 "A follows B"或 "A depends on B and C"以及此类关系

forms - 窗体上设置的光标不会显示在控件上

javascript - 捕获 onClick 上执行的特定 Javascript 代码