jQuery设置optgroup选中值

3

我不确定如何设置optgroup的选中值,以确保所选选项具有正确的标签。我的问题是我有两个标签,但每个标签的选项可以相同。

标签1 = Honda 标签2 = Toyota

两者的选项:

选项1 =“红色” 选项2 =“蓝色”...

我想在document.ready()时将所选选项设置为Honda标签下的Blue。 目前,当我尝试将选项设置为已选择的时,最后使用“蓝色”的项目会被选择,即Toyota标签下的蓝色。

我尝试过:

var color ="Blue";
var make ="Honda";
var test = $('#car_selector optgroup[label='+make+'] option[value="'+color+'"]')
test.prop('selected', true);

<select>
 <optgroup label="Honda">
   <option value="blue">Blue</option>
   <option value="red">Red</option>
 </optgroup>
 <optgroup label="Toyota">
   <option value="blue">Blue</option>
   <option value="red">Red</option>
 </optgroup>
</select>

我已经发布了一个答案,但是你的jQuery选择器字符串看起来很接近,你只需要在“make”之前正确设置/转义引号。 - elzi
1个回答

7
假设您有类似于以下的标记语言:
<select>
  <optgroup label="Honda">
    <option value="blue">Blue</option>
    <option value="red">Red</option>
  </optgroup>
</select>

这段JS代码可以正常工作:

var make = 'Honda';
var color = 'red';

var optgroup = $('select optgroup[label="'+make+'"]')
var option = optgroup.find('option[value="'+color+'"]')

option.attr('selected', true)

点击此处进入JSBin

编辑 正如我在评论中提到的那样,这只是一个引用make变量到选择器时出现的错误。


我相信你发布的内容只有在所有标签都有不同的值时才能起作用,而我有一些标签具有相似的值。我编辑了帖子以包含HTML的外观。 - user2980830
谢谢您,我发现我的选择器有问题,但这样更有意义。 - user2980830

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接