【发布时间】:2015-08-18 00:11:19
【问题描述】:
如果您在控制台上查看,则有一个带有 value 参数数组的对象 obj,但 name 参数始终只有一个值。 我想以与存储值参数的值相同的方式存储选项“名称”的第二个属性(在一个数组中,不仅是单个选项名称,而且是所有选定选项的所有名称)。
//jQuery onchange()
var obj = {};
//get the value of option value.
$('select[name=sensors]').on('change', function(){
var value = $('select[name=sensors]').val();
obj['value'] = value;
$('#demo').text(value);
//get the value of option name.
var name = $('option:selected').attr('name');
obj['name'] = name;
$('#demo2').text(name);
console.log(obj); // returns array if value but single value of name parameter.
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select type='list' name='sensors' multiple>
<optgroup label = 'sensors'>
<option value= "e11" name = 'Electricity'>Electricity</option>
<option value= "e12" name = 'Wind'>Wind</option>
<option value= "e13" name = 'Temperature'>Temperature</option>
</optgroup>
</select>
<!--jQuery onclick()-->
<div id="demo"></div>
<!--jQuery select()-->
<div id="demo2"></div>
如果您选择多个选项值参数“obj”对象存储所选选项值的数组。但 name 参数中只存储一个值。
【问题讨论】:
-
option元素没有name属性。name在select元素上。 (developer.mozilla.org/en-US/docs/Web/HTML/Element/option) 我担心在选项上有 name 属性会导致问题。改用数据属性(例如:data-name="Wind")或只使用选项的.text() -
那么你能举出经过测试的例子吗?我尝试在选项元素上使用 '.text()' 但结果与您在上面的代码中看到的相同
标签: javascript jquery