0

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

3 回答 3

2
var id = $('input:text').filter(function(){
    return this.value === M.toString();
}).prop('id');
于 2013-06-14T07:42:08.183 回答
0

有点复杂,但如果你有最大值,你可以得到所有的文本框,按具有该值的文本框过滤并更改颜色:

$('input[type="text"]').filter(function(index) {
    return $(element).val() == M
}).css('background-color', 'red');
于 2013-06-14T07:46:21.437 回答
0

您可以使用属性等于选择器( [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 示例

值得注意的是,选择属性使用filter().


此外,您也不需要ID 来更改文本框的颜色。您可以再次使用上述选择器:

$('input[value="' + M + '"]').css({
    color: '#f00'
});

请参阅此修改后的 JSFiddle 演示

于 2013-06-14T07:43:14.630 回答