Как получить максимальное значение и присвоить аттрибут?
Здравствуйте!
в цикле выводятся текстовые поля, где поле value у них число, например value=100 value=150 value=110 как найти максимольное из них и присвоить атрибут id? |
alert(Math.max.apply(null, [100,150,110])); |
Это как получить максимальное число в массиве. Мы заранее не знаем числа.
Как его потом найти среди одинаковых инпутов? и присвоить атрибут? |
есть:
<div> <input type="text" value=200> <input type="text" value=100> </div> хотелось бы: <div> <input type="text" value=200 id="id"> <input type="text" value=100> </div> |
repz,
циклом по инпутам и запоминать индекс если текущий value больше "'эталонного" |
<input type="text" value="100"> <input type="text" value="150"> <input type="text" value="110"> <script> var max = 100; for (var i = 0; i < document.querySelectorAll("input").length; i++) { var numb = Number(document.querySelectorAll("input")[i].value); if (numb > max) { max = numb; alert(max); } var selector = 'input[value="'+max+'"]'; } document.querySelector(selector).id = "someid"; </script> |
repz,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #abracadabra { background-color: #00FF00; } </style> </head> <body> <div> <input type="text" value=200> <input type="text" value=100> <input type="text" value=500> <input type="text" value=100> </div> <script> window.addEventListener("DOMContentLoaded", function() { var a = document.querySelectorAll("div input"); [].reduce.call(a, function(a, b) { return 0 <= a.value - b.value ? a : b }, a[0]).id = "abracadabra" }); </script> </body> </html> |
Спасибо, большое все получилось.
Но на практике , как всегда, не все так просто, в некоторых случаях инпутов мб больше и они в разных дивах. Решил указанием класса дива вот тут: var a = document.querySelectorAll(".option input"); И присвоением класса диву, вот тут: <div class="option" > <input type="text" value=200> <input type="text" value=100> <input type="text" value=500> <input type="text" value=100> </div> Проблема: Мб такая ситуация <div class="option" > <input type="text" value=400> <input type="text" value=340> <input type="text" value=0> <input type="text" value=560> </div> <div class="option" > <input type="text" value=200> <input type="text" value=100> <input type="text" value=500> <input type="text" value=100> </div> т.е. два одинаков дива с инпутами, максимум от рони выберет только в последнем, как можно выбрать максимальное значение в обоих дивах, но только одно на двоих? т.е. 560 Спасибо. |
Цитата:
Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #abracadabra { background-color: #00FF00; } </style> </head> <body> <div class="option" > <input type="text" value=400> <input type="text" value=340> <input type="text" value=0> <input type="text" value=560> </div> <div class="option" > <input type="text" value=200> <input type="text" value=100> <input type="text" value=500> <input type="text" value=100> </div> <script> window.addEventListener("DOMContentLoaded", function() { var a = document.querySelectorAll(".option input"); [].reduce.call(a, function(a, b) { return 0 <= a.value - b.value ? a : b }, a[0]).id = "abracadabra" }); </script> </body> </html> |
рони, простите за бестактность, я был не прав(
пытаюсь адаптировать под rel <input type="text" value=100 rel=100> никак не могу получить его вместо value( |
Часовой пояс GMT +3, время: 16:34. |