如何根据输入元素的值获取输入元素的id?这些值将始终是唯一的,并且只有七个。我试过这个:
$('#wrapper').find("input[value='"+value+"']").each(function(){
return this.id;
});
但没有任何回报!
答案 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);