Как получить максимальное значение и присвоить аттрибут?
Здравствуйте!
в цикле выводятся текстовые поля, где поле 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( |
Цитата:
|
Спасибо, ткнули.
Использовал attr |
| Часовой пояс GMT +3, время: 18:46. |