我正在寻找一种在用户点击链接时更改选择标记中的选项值的方法。
例如我有一个选择选项html:
<select> <option value="0">Please Select</option>
<option value="1">red</option>
<option value="2">white</option>
</select>
我有2个链接<a href="#" title="red" class="preview_link">red</a> <a href="#" title="white">white</a>
当用户点击红色时,该选项将切换为红色,白色将切换为白色。我使用以下代码,但它无法正常工作。
jQuery("a.preview_link").click(function() {
var title = jQuery(this).attr("title");
jQuery(this).parent('p').children("select :selected").text(title);
});
有什么建议吗?
答案 0 :(得分:6)
您的方法会将选项的文本设置为title属性。尝试:
jQuery("a.preview_link").click(function() {
var title = jQuery(this).attr("title");
jQuery(this).parent('p').find("select option").filter(function() {
return $(this).text() == title;
}).attr('selected', 'selected');
});
请参阅filter
。
答案 1 :(得分:0)
嗯,你错了:不需要更改所选选项的文本,而是需要遍历<option/>
元素并选择合适的元素,如下所示:
$("select option").each(function() {
if($(this).text() == "red")) {
this.selected = true;
}
});
编辑:jQuery中可能有一个select()
函数。如果是这种情况,那么在DOM属性上使用它。
答案 2 :(得分:0)
此?
$("select #some-option").attr("selected", "selected");
还是这个?
$("select").val(index);