Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Выделить атрибут name (https://javascript.ru/forum/css-html/75109-vydelit-atribut-name.html)

Asew 03.09.2018 14:12

Выделить атрибут name
 
как собрать массив из name:

<select name="ToLB" >
    <option value="monkey">Monkey</option>
     <option value="fruit">fruit</option>
</select>

Если через id, то вот так работает:

var my_array = [];

  		$('input[name="ToLB"]').each(function() {
    		if ($(this).val() !== '') {
      				my_array .push($(this).val());
    				}
  		});

laimas 03.09.2018 14:21

$('input[name="ToLB"]') - input тут причем если <select name="ToLB"> ?

Вы что хотите значения опций списка в массив поместить, а зачем?

Asew 03.09.2018 14:33

да, ссори ошибочка, вот так правильно:

$('select[name="ToLB"]')


ну надо мне для дальнейших работ именно значения опций списка.

laimas 03.09.2018 14:49

var my_array = $.map($('select[name=ToLB]').children(), function(e) {
    return e.value
})

ksa 03.09.2018 16:27

Цитата:

Сообщение от Asew
$('input[name="ToLB"]').each()

Можно заменить на
$('select[name="ToLB"]>option').each()

laimas 03.09.2018 16:42

select[name="ToLB"]>option - а что есть еще и вложенные опции? :)

Aetae 03.09.2018 22:14

laimas, вообще есть: в optgroup. И для них такой селектор кстати не сработает.:)

laimas 04.09.2018 01:33

Цитата:

Сообщение от Aetae
вообще есть: в optgroup. И для них такой селектор кстати не сработает

И без > выбраны будут только опции.

ksa 05.09.2018 09:40

Цитата:

Сообщение от laimas
И без > выбраны будут только опции.

А с ним не выберутся? :D

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	alert($('select[name="ToLB"]>option').length);
});
</script>
</head>
<body>
<select name="ToLB" >
	<option value="monkey">Monkey</option>
	<option value="fruit">fruit</option>
</select>
</body>
</html>

laimas 05.09.2018 10:17

Цитата:

Сообщение от ksa
А с ним не выберутся?

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<select name="ToLB">
    <option value="1">111</option>
    <option value="2">111</option>
    <option value="3">111</option>
    <optgroup title="two">
        <option value="4">222</option>
        <option value="5">222</option>
        <option value="6">222</option>
    </optgroup>
</select>

<script>
var a1 = $.map($('select[name=ToLB] > option'), function(e) {
    return e.value
}), a2 = $.map($('select[name=ToLB] option'), function(e) {
    return e.value
});

alert(a1 + '\n' + a2)
</script>
</body>
</html>


Почему, пояснять не надо. ;)


Часовой пояс GMT +3, время: 12:07.