基于输入元素的值,如何获取其id?这些值将始终是唯一的,只有七个。我尝试过以下方法:
$('#wrapper').find("input[value='"+value+"']").each(function(){
return this.id;
});
但是没有返回任何内容!
基于输入元素的值,如何获取其id?这些值将始终是唯一的,只有七个。我尝试过以下方法:
$('#wrapper').find("input[value='"+value+"']").each(function(){
return this.id;
});
但是没有返回任何内容!
尝试使用 this.id,不需要为 ID 创建 jQuery 对象。
$(this).attr('id')
HTH
EDIT: This might work:
$('#wrapper').find("input[value='"+value+"']").attr('id');
你写了return this.id;
... 返回到哪里?你仅仅从匿名函数中返回值,我没有看到你在哪里尝试使用它。所以答案是:
var idYouAreSearchingFor = $('#wrapper').find("input[value='"+value+"']").attr('id');
你的代码基本上很不错:
$('#wrapper').find("input[value='"+value+"']").each(function(){
return $(this).attr("id")
});
在这里检查: http://jsfiddle.net/5xsZt/
编辑:我刚刚使用this.id
进行了测试,它也可以。你的代码是正确的。你的错误可能出现在其他地方,请仔细检查:
http://jsfiddle.net/5xsZt/3/
你可以使用过滤器来解决这个问题。像这样:
$('#wrapper input').filter(function() {
return $(this).val() == value;
}).each(function() {
return this.id;
});
这是一个在所有主流浏览器中绝对可行的版本:
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);