在其他选项标记之间删除和添加选项?

时间:2017-11-03 15:31:27

标签: jquery select options

我想在选项2之后添加一些选项值,假设我喜欢添加选项

<option value="2a">2a</option>
<option value="2b">2b</option>
<option value="2c">2c</option>

我想删除选项2

 <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js">
    </script>

    <select  id="selectCity">
    <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
    </select>

所以它变成

    <select  id="selectCity">
    <option value="1">1</option>
 <option value="2a">2a</option>
    <option value="2b">2b</option>
    <option value="2c">2c</option>
<option value="3">3</option>
<option value="4">4</option>
    </select>

所以我试过

$("#selectCity option[value='2']").remove();

newoptions = '<option value="2a">2a</option><option value="2b">2b</option<option value="2c">2c</option>';
$("#selectCity").append(newoptions);

但这只是将选项值作为最后一个选项附加在第三个

之前

内置函数的任何其他jquery我可以看看???

2 个答案:

答案 0 :(得分:1)

这似乎有效,请参阅此JSFiddle

var elemToReplace = $("#selectCity option[value='2']");

newOptions = '<option value="2a">2a</option><option value="2b">2b</option><option value="2c">2c</option>';

$(newOptions).insertBefore(elemToReplace);

elemToReplace.remove();

答案 1 :(得分:1)

我想念你要求更换。在这种情况下,你不会使用insertBefore / insertAfter /或append。你只需要使用replaceWith。

&#13;
&#13;
var replacement = [
  '<option value="2a">2a</option>',
  '<option value="2b">2b</option>',
  '<option value="2c">2c</option>'
];

$('#selectCity option').filter('[value="2"]').replaceWith(replacement);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selectCity">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
&#13;
&#13;
&#13;