嘿伙计们我在Jquery遇到了问题。我需要从其值中获取元素的id。 我必须找到具有最大值的元素的ID。
var M = Math.max($("#textbox1").val(),
$("#textbox8").val(),
$("#textbox15").val(),
$("#textbox22").val(),
$("#textbox29").val(),
$("#textbox36").val(),
$("#textbox43").val(),
$("#textbox50").val());
现在假设我得到了textbox1的最大值,我在M中得到了这个值。
现在我需要根据M中的值找到元素的ID,然后更改该文本框的颜色。 怎么做? 我这样做但是没有用:
var pp = $(this).attr(M, 'id');
答案 0 :(得分:2)
var id = $('input:text').filter(function(){
return this.value === M.toString();
}).prop('id');
答案 1 :(得分:0)
您可以使用attribute equals selector([name="value"]
)。假设您有这些HTML值:
<input id="textbox1" value="2" />
<input id="textbox2" value="5" />
<input id="textbox3" value="3" />
要获取具有最大值的元素的ID(在本例中为textbox2),您可以使用:
var M = 5; /* As calculated */
$('input[value="' + M + '"]')[0].id; /* textbox2 */
值得注意的是,选择属性为more than 80% faster而非使用filter()
。
此外,您也不需要 ID来更改文本框的颜色。您可以再次使用上面的选择器:
$('input[value="' + M + '"]').css({
color: '#f00'
});
请参阅此修改后的JSFiddle demo。
答案 2 :(得分:0)
有点复杂,但是如果你有最大值,你可以得到所有的文本框,由具有该值的人过滤并改变颜色:
$('input[type="text"]').filter(function(index) {
return $(element).val() == M
}).css('background-color', 'red');