使用JQuery“select option:first-child”仅用于具有给定id的元素?

时间:2011-03-07 13:10:07

标签: javascript jquery html css-selectors

此代码查看带有'townid'的下拉列表是否具有Central选项,然后在all下拉列表的第一个选项后放置Central。

 var central = $('#townid option:contains("Central")');
   if(central){
     central.insertAfter('select option:first-child');
   }

我的问题是:

如何在具有townid id的下拉列表之后添加它?我的意思是:

 var central = $('#townid option:contains("Central")');
   if(central){
     central.insertAfter('#townid select option:first-child');
   }

例如:

 <select id=townid>
    <option value="5000">AL</option>
    <option value="5001">NY</option>
    <option value="5002">LA</option>
    <option value="5003">NY</option>
    <option value="5204">Central</option>
    <option value="5024">FA</option>
 </select>

 <select id="someid">
    <option value="3002">Brooklyn</option>
    <option value="6001">Manhattan</option>
 </select>

在这个过程之后,他们应该看起来像:

 <select id=townid>
    <option value="5000">AL</option>
    <option value="5204">Central</option>
    <option value="5001">NY</option>
    <option value="5002">LA</option>
    <option value="5003">NY</option>
    <option value="5024">FA</option>
 </select>

 <select id="someid">
    <option value="3002">Brooklyn</option>
    <option value="6001">Manhattan</option>
 </select>

2 个答案:

答案 0 :(得分:2)

  

如何在ID为townid的下拉列表后添加它?

好的,我假设您的HTML看起来像这样:

<select id="townid">
  <option>
    …
  </option>
</select>

在这种情况下,您可以使用:

 $('#townid option:contains("Central")').appendTo('#townid option');

如果option中有多个#townid元素,而您只想选择第一个,只需更改选择器:

 $('#townid option:contains("Central")').appendTo('#townid option:first');

在您的示例中,请勿使用if (central),而是使用if (central.length)

答案 1 :(得分:1)

你刚搞砸了选择器,因为#townid是select标签。

 var central = $('#townid option:contains("Central")');
   if(central.length === 1){
     central.insertAfter('#townid option:first-child');
   }