对不起伙计们,我应该直接发布脚本而不清理它。请检查更新的脚本,它现在应该清理。谢谢!
考虑以下JavaScript:
var selected = 0;
var options = 0;
$('.newListSelected').each(function() {
selected = $(this).children('.selectedTxt');
selected = selected.text();
/* Everything before this line works completely fine */
options = $(this).prev();
options.find('option[value=' +selected+ ']').attr('selected', 'selected');
}).remove();
和HTML:
<select name="type[]" style="display: none;">
<optgroup>
<option value="none">Select</option>
</optgroup>
<optgroup label="First Group">
<option value="1">One</option>
<option value="2">Two</option>
</optgroup>
<optgroup label="Second Group">
<option value="10">Ten</option>
<option value="20">Twenty</option>
</optgroup>
</select>
<div class="newListSelected">
<div class="selectedTxt">20</div>
<ul class="newList">
<!-- Other stuff here -->
</ul>
</div>
我实际上要做的是将selected
属性添加到与.selectedTxt
中的文本具有相同值的相应选择选项。在上面的代码中,它应该将selected="selected"
添加到<option value="20">Twenty</option>
。
然而,它没有达到预期的效果,我还尝试在alert(option);
下面添加prev();
,但它没有输出任何有用的内容。
感谢。
答案 0 :(得分:4)
Javascript工作正常,如下所示:http://jsfiddle.net/4HsXp/
如果您需要在select
元素中选择多个项目,则需要设置multiple
和size
属性,如下所示:
<select multiple="multiple" size="2">
<option>1</option>
<option>2</option>
</select>
请参阅:http://reference.sitepoint.com/html/select
修改强>
将console.log
语句附加到新代码仍然没有任何问题。 Running it on jsfiddle给了我正确的输出:
jQuery(select)
Original Value: none
New Value: 20
答案 1 :(得分:0)
我不确定你要做什么,但为什么不能选择具有适当选择器的所有选项元素?如果您只想选择一些选项,则必须添加额外的选择器attrbiutes。
$('select option').each(function() {
$(this).attr('selected', 'selected');
});