2016-12-30 4 views
1

В форме поиска есть опция выбора, и она имеет идентификатор (например, main_cat).Изменить <select> id on click in jQuery

Теперь я хочу, чтобы при нажатии на ссылку ('a') идентификатор select должен быть изменен с помощью second_cat.

Примечание Дайте мне решение с гнездовыми Дивыми классами на jsFiddle, потому что main_cat идентификатора используется также в другом разделе на тот же странице

Вот мой пример код:

<div class="widget widget_vehicle_search"> 
    <div class="search-form-widget"> 

     <form id="wp-advanced-search" name="wp-advanced-search" class="wp-advanced-search" method="" action=""> 
      <div id="wpas-main_cat" class="wpas-main_cat wpas-generic-field wpas-field"> 
       <div class="label-container"> 
        <label for="main_cat">Select A Manufacturer:<i class="icon-help-circled-1 tooltip"></i></label> 
       </div> 

       <select id="main_cat" name="main_cat"> 
        <option value="any">Any Manufacturer</option> 
       </select> 

      </div> 
     </form> 
    </div> 

</div> 

Когда Нажмите на ссылку main_cat id изменено с помощью second_cat

Надеется, что вы понимаете мой вопрос

+1

К сожалению, но не совсем ясно) – VadimB

+1

Идентификаторы должны быть уникальными. Вместо этого я бы пошел с классом. –

+0

Также изменение атрибутов «id» на клиенте - не очень хорошая идея - они созданы как статические. Если вам нужен новый элемент 'select', который содержит разные данные, добавьте его в DOM –

ответ

3

Я не уверен, если это то, что вы имеете в виду, но вы можете прикрепить нажмите событие, чтобы закрепить затем по щелчку изменить атрибут избранных id по новому:

$('a').on('click', function(){ 
    $('#main_cat').prop('id', 'second_cat'); 
}) 

Надеюсь, это поможет.

$('a').on('click', function(e){ 
 
    e.preventDefault(); 
 
    
 
    console.log('Before : '+$('select').prop('id')); 
 
    
 
    $('#main_cat').prop('id', 'second_cat'); 
 
    
 
    console.log('After : '+$('select').prop('id')); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="widget widget_vehicle_search"> 
 
    <div class="search-form-widget"> 
 

 
    <form id="wp-advanced-search" name="wp-advanced-search" class="wp-advanced-search" method="" action=""> 
 
     <div id="wpas-main_cat" class="wpas-main_cat wpas-generic-field wpas-field"> 
 
     <div class="label-container"> 
 
      <label for="main_cat">Select A Manufacturer:<i class="icon-help-circled-1 tooltip"></i></label> 
 
     </div> 
 

 
     <select id="main_cat" name="main_cat"> 
 
      <option value="any">Any Manufacturer</option> 
 
     </select> 
 

 
     </div> 
 
    </form> 
 
    </div> 
 
</div> 
 

 
<br> 
 
<a href='#'>change select id</select>

+0

. Я действительно хочу это решение. Но, пожалуйста, вы можете дать мне код с гнездом. например '$ ('. widget_vehicle_search .search-form-widget # wpas-main_cat #main_cat'). prop()' это эта работа? – deemi

+0

Просто '# main_cat' должен отлично работать, так как' id' уникален, предоставленный селектор будет работать, но на самом деле не нужно использовать прямой 'id'. –