Jquery从其值中获取元素ID

时间:2013-06-14 07:39:12

标签: jquery getelementbyid

嘿伙计们我在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');

3 个答案:

答案 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 */

JSFiddle example

值得注意的是,选择属性为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');