Вывести в select все данные class
На странице произвольное кол-во span с определенным class.
Мне надо при клике на select в него вывести все эти значения. <span class="alliki">1</span> <span class="alliki">2</span> <span class="alliki">3</span> <span class="alliki">4</span> При клике на Select мне надо в него вставить все данные span, чтобы получилось вот так: <select id="select" onclick=""> <option>1</option> <option>2</option> <option>3</option> <option>4</option> </select> Не получается сделать, подскажите пжл как сделать |
djonA,
и что мешает циклом обойти все span? |
прохожусь так:
$(".alliki").each(function() {}
а дальше как их вставить в select? |
djonA,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
window.addEventListener('DOMContentLoaded', function() {
var nodes = document.querySelectorAll('.alliki'),
select = document.querySelector('select');
select.addEventListener('mousedown', function create() {
[].forEach.call( nodes, function(span) {
var val = span.innerHTML;
var option = new Option(val, val);
select.appendChild(option)
});
select.removeEventListener('mousedown',create)
});
});
</script>
</head>
<body>
<span class="alliki">1</span>
<span class="alliki">2</span>
<span class="alliki">3</span>
<span class="alliki">4</span>
<select id="select" >
</select>
</body>
</html>
|
а если не привязываться к select id='select', а вставлять во все select с class='select'
Т.е скажем у меня на странице не 1 а несколько select с class='select' как во всех них вставить: <span class="alliki">1</span> <span class="alliki">2</span> <span class="alliki">3</span> <span class="alliki">4</span> <select class="select" > </select> <select class="select" > </select> при открытии 1 select вставлять во все select данные из span? |
djonA,
добавить цикл по селектам и всё |
djonA,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
window.addEventListener('DOMContentLoaded', function() {
window.addEventListener('mousedown', function create(event) {
var nodes = document.querySelectorAll('.alliki'),
selects = document.querySelectorAll('.select');
var cls = event.target.classList;
if(cls && cls.contains("select")){
[].forEach.call( selects, function(select) {
[].forEach.call( nodes, function(span) {
var val = span.innerHTML;
var option = new Option(val, val);
select.appendChild(option)
})
})
};
window.removeEventListener('mousedown',create)
});
});
</script>
</head>
<body>
<span class="alliki">1</span>
<span class="alliki">2</span>
<span class="alliki">3</span>
<span class="alliki">4</span>
<select class="select" >
</select>
<select class="select" >
</select>
</body>
</html>
|
Отлично спасибо все работает.
Только хочу повесить на onclick, ане при загрузке страницы, так как в случае добавление на страницу элементов, они не активны. пробую так но добавляется в двойном кол-ве option:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
function go123() {
var nodes = document.querySelectorAll('.alliki'),
selects = document.querySelectorAll('.select123');
window.addEventListener('mousedown', function create(event) {
var cls = event.target.classList;
if(cls && cls.contains("select123")){
[].forEach.call( selects, function(select123) {
[].forEach.call( nodes, function(span) {
var val = span.innerHTML;
var option = new Option(val, val);
select123.appendChild(option)
})
})
};
window.removeEventListener('mousedown',create)
});
};
</script>
</head>
<body>
<span class="alliki">1</span>
<span class="alliki">2</span>
<span class="alliki">3</span>
<span class="alliki">4</span>
<select class="select123" onclick="go123();">
</select>
<select class="select123" onclick="go123();">
</select>
</body>
</html>
подскажите как при onclick проходится по span'ам и обновлять правильное кол-ве option в select'e, или просто удалить повторяющиеся значения option? |
djonA,
пост 7 сейчас сработает когда бы вы недобавили без всяких onclick |
если я нажал на select а после этого добавились span, то новый span не добавляется в select.
т.е не отрабатывает если после загрузки страницы у меня добавляются или span или select. А если на onclick вешаю, то отрабатывает но почему то дублирует значение, на каждый клик увеличивает кол-во выводимых в select option'ов |
| Часовой пояс GMT +3, время: 01:38. |