2013-06-14 4 views
0

Эй, ребята, у меня проблема в JQuery. Мне нужно получить идентификатор элемента из его значения. Мне нужно найти идентификатор элемента, имеющего максимальное значение.JQuery получить элемент ID от его значения

var M = Math.max($("#textbox1").val(), 
     $("#textbox8").val(), 
     $("#textbox15").val(), 
     $("#textbox22").val(), 
     $("#textbox29").val(), 
     $("#textbox36").val(), 
     $("#textbox43").val(), 
     $("#textbox50").val()); 

Теперь предположим, что я получаю максимальное значение, чтобы быть TextBox1 и я получаю это значение в М.

Теперь мне нужно найти идентификатор элемента в зависимости от значения М, а затем изменить цвет этого текстового поля. Как это сделать? делаю как это, но он не работает:

var pp = $(this).attr(M, 'id'); 
+0

Вы действительно не нужно использовать 'filter()' здесь вообще. Я не знаю, посмотрел ли вы на мой ответ, но это намного быстрее и проще. Вам даже не нужен идентификатор элемента (как и мой ответ). –

ответ

2
var id = $('input:text').filter(function(){ 
    return this.value === M.toString(); 
}).prop('id'); 
+0

@AshishBatra Привет! –

+0

Эй вы можете сказать мне, как отображать таблицу в переполнении стека. когда я копирую, он отображается как текст bt. Я хочу отобразить его таким образом, чтобы другие могли видеть его как таблицу. –

+0

@AshishBatra Вы можете обернуть свой текст внутри '' –

0

Вы можете использовать attribute equals selector ([name="value"]). Предположим, что у вас есть эти значения HTML:

<input id="textbox1" value="2" /> 
<input id="textbox2" value="5" /> 
<input id="textbox3" value="3" /> 

Чтобы получить идентификатор элемента с наибольшим значением (TextBox2, в данном случае), вы бы Вы использовали бы:

var M = 5; /* As calculated */ 
$('input[value="' + M + '"]')[0].id; /* textbox2 */ 

JSFiddle example.

Следует отметить, что выбор атрибута more than 80% faster, чем использование filter().


Кроме того, вам не нужно идентификатор, чтобы изменить цвет текстового поля, либо. Вы можете снова использовать вышеупомянутую селектор:

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

Смотрите этот модифицированный JSFiddle demo.

0

Немного запутанная, но если у вас есть максимальное значение, вы можете получить все текстовые поля, фильтр от того, кто имеет это значение и изменить цвет:

$('input[type="text"]').filter(function(index) { 
    return $(element).val() == M 
}).css('background-color', 'red'); 
+0

, вы должны изменить '' текст'' ​​на '" текст ", иначе он выдает ошибку. – Spokey

+0

Спасибо! Я набрал пост, так что не заметил этого: P –

Смежные вопросы