Javascript jQuery移动特定选项位于选择的顶部(下拉)
我基本上是尝试从选择中选择一个特定的选项,并将其移动到列表的顶部。我现在想做的就是这样Javascript jQuery移动特定选项位于选择的顶部(下拉),javascript,jquery,html,Javascript,Jquery,Html,我基本上是尝试从选择中选择一个特定的选项,并将其移动到列表的顶部。我现在想做的就是这样 $("select[name=list]").find('option[value="car"]').insertBefore($("select[name=list]").find('option:eq(1)')); 出于某种原因,它执行了两次,在顶部留下两个选项 <option value="car">Car</option> <option value="car">
$("select[name=list]").find('option[value="car"]').insertBefore($("select[name=list]").find('option:eq(1)'));
出于某种原因,它执行了两次,在顶部留下两个选项
<option value="car">Car</option>
<option value="car">Car</option>
汽车
汽车
不知道我做错了什么,也许有人知道
谢谢。:等式(1)将选择第二个元素,而不是第一个元素。除此之外,您发布的代码应该可以正常工作:
var $select = $("#mySelect");
$mySelect.find('option[value="car"]')
.insertBefore($mySelect.find('option:eq(1)'));
试试这个
$("select[name=list]").find('option[value="car"]').prependTo($("select[name=list]"));
$("select[name=list]").val('car')
从jQuery文档中: 如果以这种方式选择的元素被插入到DOM中其他位置的单个位置,它将在目标(未克隆)之前移动,并返回由插入元素组成的新集合 [……] 但是,如果有多个目标元素,则在第一个目标元素之后,将为每个目标创建插入元素的克隆副本,并返回该新集合(原始元素加克隆) 所以,有一个线索!我的猜测是,你的选择器太过包容,你选择了不止一个元素。。。甚至在文档中的另一个选择列表中 您可以为您的示例提供更多的HTML代码,但让我展示一下如何做到这一点 Html 如果您注意我使用的选择器,我消除了选择多个元素的可能性,因此,遵守了我引用的第二部分的规则 示例:
我希望我的第一个答案能帮助你!:) 可能有两个问题
我不会在变量名前面使用$,除非我写PHP或其他东西……过去我也不会,但在jQuery上下文中,当变量包含一个非常有趣的jQuery对象时,人们会使用它,谢谢你的链接。这是有道理的。此解决方案会将新添加的选项附加到选择列表的顶部,但不会将其标记/显示为当前选定的选项。为此,您可以尝试添加以下行:
var all_options=$(“select[name=list]”).html()代码>$(“选择[名称=列表]”).html(“”)
$(“选择[name=list]”)html(所有选项)代码>
<select id='MyNiceList'>
<option value='my_option_1'>First Option</option>
<option value='my_option_2'>Second Option</option>
<option value='my_option_3'>Third Option</option>
</select>
$('#MyNiceList option[value="my_option_2"]').insertBefore('#MyNiceList option[value="my_option_1"]');
var $el = $("select[name=list]").find('option[value="car"]');
$("select[name=list]").find('option[value="car"]').remove();
$("select[name=list]").find('option:eq(0)').before($el);