如何按值查找输入元素id?

时间:2010-05-05 10:53:50

标签: javascript jquery

如何根据输入元素的值获取输入元素的id?这些值将始终是唯一的,并且只有七个。我试过这个:

$('#wrapper').find("input[value='"+value+"']").each(function(){
    return this.id;
});

但没有任何回报!

5 个答案:

答案 0 :(得分:7)

尝试

$(this).id nope,this.id有效,无需为ID创建jQuery对象。

$(this).attr('id')

HTH

编辑: 这可能有效:

$('#wrapper').find("input[value='"+value+"']").attr('id');

答案 1 :(得分:4)

你写return this.id; ...回到哪里?您只需从匿名函数返回值,我看不到您尝试使用它的位置。所以答案是:

var idYouAreSearchingFor = $('#wrapper').find("input[value='"+value+"']").attr('id');

答案 2 :(得分:3)

你的代码几乎不错:

$('#wrapper').find("input[value='"+value+"']").each(function(){
        return  $(this).attr("id") 
});

点击这里 http://jsfiddle.net/5xsZt/

编辑:我刚刚使用this.id对其进行了测试。你的代码是对的。您的错误在其他地方:检查它: http://jsfiddle.net/5xsZt/3/

答案 3 :(得分:1)

您可以使用filter解决此问题。像这样:

$('#wrapper input').filter(function() {
    return $(this).val() == value;
}).each(function() {
    return this.id;
});

答案 4 :(得分:1)

这是一个肯定适用于所有主流浏览器的版本:

function getInputWithValue(wrapper, value) {
    var inputs = wrapper.getElementsByTagName("input");
    var i = inputs.length;
    while (i--) {
        if (inputs[i].value === value) {
            return inputs[i];
        }
    }
    return null;
}

var wrapper = document.getElementById("wrapper");
var input = getInputWithValue(wrapper, "some value");
window.alert(input.id);