Как запушить значения в select?
В {{::min}} и {{::max}} передается минимальное и максимальное значение,я хочу передать в селект значение от min до max,и построить его чтобы было примерно так,если min =1000 а max=5000 ,то строится селект с выборами 1000,1001,1002....5000,но не получается,что делаю не так?
<div id="q1">{{::min}}</div> <div id="q2">{{::max}}</div> <select id="minim" ></select> var min = $("#q1").text(); var max = $("#q2").text(); min1 = parseInt(min, 10); max1 = parseInt(max, 10); for (var i = min1; i < max1; i++) { $("#minim").push(i); } |
тут нужен не push
$("#minim").push(i); } a $("#minim").append('<option value="'+i+'">'+i+'</option>') |
Список не имеет метода .push(), это не массив. Добавлять в него нужно опции (<option></option>)
|
Цитата:
|
Цитата:
|
Цитата:
$("#minim").append('<option value="'+i+'">'+i+'</option>') |
Или нативными методами...
<SELECT ID="oSelect"> <OPTION VALUE="1">One</OPTION> </SELECT> <SCRIPT> var oOption = document.createElement("OPTION"); document.getElementById('oSelect').options.add(oOption); oOption.innerHTML = "Two"; oOption.Value = "2"; </SCRIPT> |
Цитата:
<html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </head> <body> <select id="minim"></select> <script> for (var i = 0; i < 20; i++) { $("#minim").append('<option value="'+i+'">'+i+'</option>') } </script> </body> </html> |
Цитата:
лучше сделать так <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </head> <body> <input type="text" id="shir" value="1000"><br> <input type="range" min="1000" max="5000" step="1" value="1000" id="shirR"> <script> $('#shirR').on('input', function() { var rng = $('#shirR').val(); $('#shir').val(rng); }); </script> </body> </html> |
Цитата:
$('#shirR').on('input', function() { $('#shir').val(this.value); }); |
Цитата:
|
но мне к сожалению нужно сделать именно выпадающим списком,а вот такой вопрос,если у меня много селектов и у каждого свой min и max будт то как сделать?ведь скрипт сработает только для первого id ,а если задать классами то у всех будет одинаково все
|
INSIDER73,
Цитата:
<div class="item"> <div class="q1">{{::min}}</div> <div class="q2">{{::max}}</div> <select class="minim" ></select> </div> $(function() { $(".item").each(function(indx, el){ //$(".minim", el) ... }); }); |
Цитата:
|
Цитата:
Так? $(function() { $(".item").each(function(indx, el){ var min = $(".q1").text(); var max = $(".q2").text(); min1 = parseInt(min, 10); max1 = parseInt(max, 10); for (var i = min1; i < max1; i += 10000) { $(".minim").append($('<option value="' + i + '">' + i + '</option>')) } }); }); |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
$(function() { $(".item").each(function(indx, el){ var min = $(this).children(".q1").text(); var max = $(this).children(".q2").text(); min1 = parseInt(min, 10); max1 = parseInt(max, 10); for (var i = min1; i < max1; i += 10000) { $(this).children(".minim").append($('<option value="' + i + '">' + i + '</option>')) } }); }); примерно так. |
Цитата:
|
Цитата:
|
Цитата:
Цитирую автора темы: "если min =1000 а max=5000 ,то строится селект с выборами 1000,1001,1002....5000" |
Цитата:
Вот так и с органами управления можно поступать, к тому же элементом range можно управлять и клавиатурой, к примеру ползунком это грубо, с большим шагом, клавиатурой точно. Но в общем-то данный вопрос возник не поэтому, а потому, что в вашем коде второе поле формы как прицеп только для отображения. Если же это связанные элементы (либо ползунок, либо ввод), то значит и скрипт должен быть соответствующий - изменения в поле ввода должны отражаться и на слайдере. |
Часовой пояс GMT +3, время: 01:08. |