最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to find input element id by value? - Stack Overflow

programmeradmin4浏览0评论

How do I get the id of an input element based on its value? The values will 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!

How do I get the id of an input element based on its value? The values will 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!

Share Improve this question edited Aug 27, 2014 at 14:34 j08691 208k32 gold badges268 silver badges280 bronze badges asked May 5, 2010 at 10:53 AbsAbs 57.9k103 gold badges281 silver badges416 bronze badges
Add a comment  | 

5 Answers 5

Reset to default 7

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)

  1. 暂无评论