Javascript 设置选定元素的选定值

Javascript 设置选定元素的选定值,javascript,jquery,html,Javascript,Jquery,Html,我有两个选择列表: <select id="one" class="sel"> <option id="1">1</option> <option id="2">2</option> <option id="3">3</option> </select> <select id="two" class="sel"> <option id="1">

我有两个选择列表:

<select id="one" class="sel">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
</select>

<select id="two" class="sel">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
</select>
现场直播:


顺便说一句,我想在选项中的ID,而不是值的例子。谢谢。

选项
s中将
id
更改为
,然后:

$("#three").click(function(){
    $(".sel").val(3);
});
还可以查看您的更新


您可以使用属性选择器

$("#three").click(function(){
    $(".sel").find('[id=3]').attr('selected', 'selected');
});
工作

使用该功能

$("#three").click(function(){
    $(".sel").val("3");
})

所有认为您需要在
选项上设置值的人:您不需要。看看jQuery核心:

option: {
            get: function( elem ) {
                var val = elem.attributes.value;
                return !val || val.specified ? elem.value : elem.text;
            }
        },
如果没有值属性,则使用
选项
的文本。因此,调用
val(3)
将搜索文本值为“3”的选项,并选择适当的元素。ID不是唯一的与此无关


小提琴手:

只是为了好玩才做这件事的。。在这里查看我的


听着,我们知道你也有
value
属性,但你真的不应该滥用
id
——而是使用
data xxx
元素。你不能有多个相同id的元素。你在同一html中有重复的id。它将起作用,getElementById将返回匹配ID的数组,但ID应该是唯一的。页面上不能有多个ID相同的元素。这将不会检查OP所需的属性ID=3。此解决方案将不起作用。OP没有为选项元素使用
属性。想修改你的答案吗?@ShankarSangoli,你甚至不需要将
id
更改为
value
。您基本上将select元素的值设置为3。这就是为什么你认为它是有效的。@primatology:id必须以字母开头,而不是数字。OP不打算使用值,所以我认为这不会解决问题。这是有效的,但你应该提到id必须是唯一的。@TonioElGringo-你是对的,id应该在页面上是唯一的。因为我们限制了范围来找到这个答案中的元素。是的,这就是它工作的原因,但这并不意味着它是最好的方法。使用Alnitak提到的相同代码并用数据xxx替换id会更好,效果也会更好。没有我提到的地方,这是最好的方法。此答案根据OP的标记,如果需要,OP可以更改属性名称并相应地使用它。重点是如何使用
jQuery
api来查找具有匹配属性值的所需元素。你的否决票完全没有意义。
$("#three").click(function(){
    $(".sel").find('[id=3]').attr('selected', 'selected');
});
$("#three").click(function(){
    $(".sel").val("3");
})
option: {
            get: function( elem ) {
                var val = elem.attributes.value;
                return !val || val.specified ? elem.value : elem.text;
            }
        },
var txt2Num = ['zero', 'one', 'two', 'three', 'four', 'five','six', 'seven', 'eight', 'nine'];
$("#three").click(function(){
    var textNum = $.trim($(this).text()).replace('set ', '');
    var selectedIndex = $.inArray(textNum, txt2Num);   

    $(".sel").each (function (index) {       
        this.selectedIndex = selectedIndex - 1;
    });
});