【问题标题】:jQuery Switching order of two <options> with specific values具有特定值的两个 <options> 的 jQuery 切换顺序
【发布时间】:2013-05-27 00:46:12
【问题描述】:

我希望使用 jQuery 的 .insertBefore 方法重新排序下拉菜单。不过,我在选择每个 optionvalue 属性时遇到了一些问题。

示例:http://jsfiddle.net/4WGvB/1/

基本上,使用该方法将事物 1 放在事物 2 之前。

<select>
    <option value="1">Thing 2</option>
    <option value="2">Thing 1</option>
    <option value="3">Thing 3</option>
</select>

$($(("option").attr({value: "2"})).insertBefore($(("option").attr({value: "1"})));

【问题讨论】:

  • 您正在使用语法来创建新的选项元素,而不是选择它们。
  • 嗯...你能以答案格式显示正确的方法吗?

标签: jquery option html-select


【解决方案1】:

您使用 .attr() 方法作为设置器。在任何情况下,您都不能将 .attr() 用作 SELECTOR。

看看这个小提琴:

$('option[value="2"]').insertBefore($('option[value="1"]'));

http://jsfiddle.net/4WGvB/2/

【讨论】:

  • 啊!我以前试过,一定是做的不对。要插入变量,那我只需要转义引号,对吗?
  • 是的,我似乎在转义引号时遇到了一些麻烦。这似乎不是这样做的方法:$('option[value='x']').insertBefore($('option[value="1"]'));
  • 在单引号字符串中使用双引号,反之亦然。
  • 没关系,你可以通过$('option[value=' + x + ']').insertBefore($('option[value="1"]'));插入一个变量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
相关资源
最近更新 更多