我如何在JS中找到具有类似ID的元素?

时间:2013-02-06 16:32:03

标签: c# javascript asp.net

在我的页面中,我的标签看起来像这样:

ContentPlaceHolder1_gvGroups_lblName_0

与corrosponding:

ContentPlaceHolder1_gvGroups_lblHidden_0

我可以断言任何* lblName都有一个有害的* lblHidden。

现在,我有一些js:

//use to make any label with 'edit' class editable
function makeLabelsEditable() {

    $(".edit").focusout(function () {
        setLabel(this);
    });

    $(".edit").click(function () {
        editLabel(this);
    });
}

//used to edit labels
function editLabel(source) {
    source.innerHTML = '<input type="text" maxlength="40" value="' + source.innerHTML + '"/>';
    $(source).unbind('click');
    source.children[0].focus()
}

//used to edit labels
function setLabel(source) {

    if (source.children[0].value != '') {
        $(source).click(function () {
            editLabel(this);
        });
        source.innerHTML = source.children[0].value;
    }

}

我可以声明标有类编辑的任何内容都是有效的。

我需要像这样修改这段代码: //用于编辑标签

function setLabel(source) {

    if (source.children[0].value != '') {
        $(source).click(function () {
            editLabel(this);
        });
        source.innerHTML = source.children[0].value;
        var hidden = someHowGetHiddenFromSource(source);
        hidden.innerHTML = source.children[0].value;
    }

}

我确信这是可能的,我只是不知道如何。

基本上,它会是这样的:

getElementByID(replace(source.id,'lblName','lblHidden'));

我只是不知道JS / JQ函数可以做什么。

由于

1 个答案:

答案 0 :(得分:0)

  

基本上,它会是这样的:   getElementByID(replace(source.id,'lblName','lblHidden'));

这几乎就是它。它是:

var hidden = document.getElementById(source.id.replace('lblName', 'lblHidden'));

hidden将成为DOM元素。

或者使用jQuery:

var hidden = $("#" + source.id.replace('lblName', 'lblHidden'));

hidden将是一个包装元素的jQuery实例。

DOM元素的id属性是一个字符串。 JavaScript字符串具有replace函数,在简单的情况下,它接受要替换的字符串和替换字符串。 (除此之外还有更多,但在这种情况下,这就是你所需要的。)