开发者

How to find input element id by value?

开发者 https://www.devze.com 2022-12-29 10:17 出处:网络
How do I get the id of an input element based on its value? The values 开发者_如何学Gowill always be unique and there are only seven of them. I have tried this:

How do I get the id of an input element based on its value? The values 开发者_如何学Gowill always be unique and there are only seven of them. I have tried this:

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

But nothing is returned!


Try

$(this).id nope, this.id works, no need to create a jQuery object for the ID.

or

$(this).attr('id')

HTH

EDIT: This might work:

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


You write return this.id;… Return where? You simply return value from anonymous functions and I don't see where you ever trying to use it. So the answer is:

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


your code is almost good:

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

check here http://jsfiddle.net/5xsZt/

edit: i have just tested it with this.id it works to. Your code is right. Your error is somewhere else: check it: http://jsfiddle.net/5xsZt/3/


You can solve this using a filter. Like this:

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


Here's a version that will definitely work in all mainstream browsers:

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);
0

精彩评论

暂无评论...
验证码 换一张
取 消