Javascript:获取与元素ID相同的字符串

时间:2012-12-04 04:01:32

标签: javascript html spring-mvc

我的命名惯例

id=xxxxx //actual field shown in the screen
id=xxxxxHDN // hidden field containing the enable/disabled status of the component from the set from the controller.

现在我要做的是让xxxxxHDN的satus为true / false, 并相应地将组件状态设置为禁用/启用.with java script ..

var div = document.getElementById("hiddenFields"); // i hava some 30 hidden fields       containing the 
var j;
    for (j=0;j<div.childNodes.length;j++)
if(div.childNodes[j].value){
    alert("inside the loop");
    var someElementHDN = div.childNodes[j].id;     // my aim is to get the ID=xxxxxHDN
    var someElementHDNToString = someElementHDN .toString(); // my aim is to get the string value "xxxxxHDN"
    var toRemove = 'HDN'; // the part i wanna remove from 'someElementHDNToString' to make it an id for 'xxxxx'
    var equivalantComponentIDAsString = someElementToString.replace(toRemove,'');
    $('#' + equivalantComponentIDAsString ).attr('disabled', true);
    }
}

投入大量时间上面的东西,doesent似乎工作。我是java scrcript的新手,我在哪里错过了它?

2 个答案:

答案 0 :(得分:1)

如果你有一个id为'fooHDN'的元素,并且想要找到另一个id为'foo'的元素,那么你可以这样做:

var otherElement = document.getElementById(someElement.id.replace(/HDN$/,''));

假设您已经拥有someElement并且它是一个DOM元素。

答案 1 :(得分:0)

您发布的js代码有错误:div没有“长度”,您的意思是“div.childNodes.length”吗? 无论如何,既然你已经使用了jQuery,我认为它可以变得更容易,如下所示: 已经过测试,效果很好。

$("#hiddenFields input[type='hidden'][id$='HDN']").each(
    function () {
        var elemId = this.id.replace(/HDN$/, '');
        $('#' + elemId).attr('disabled', this.value.toLowerCase() == 'false' ? false : true);
    }
);