简体   繁体   中英

Using JQuery “select option:first-child” just for an element with a given id?

This code looks at if dropdownlist with 'townid' has an option of Central and then puts Central after the first option at all dropdownlists.

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

My problem is that:

How can I add it just after dropdownlist that has id of townid? I mean something like:

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

For example:

 <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>

After that process they should be seem like:

 <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>

How can I add it just after dropdownlist that has id of townid ?

Okay, I'm gonna assume your HTML looks something like this:

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

In that case, you could use:

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

If there are multiple option elements inside #townid and you only want to select the first, just change the selector:

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

In your example, don't use if (central) , use if (central.length) instead.

You just messed up the selector, because #townid IS the select tag.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM