Как изменить заголовок кнопки выпадающего меню, выбрав элемент?

#html #asp.net #asp.net-mvc #search #dropdown

#HTML #asp.net #asp.net-mvc #Поиск #выпадающий

Вопрос:

Мне нужно изменить заголовок выпадающего списка, когда я выбираю элемент в выпадающем списке, это мой код на данный момент

 <div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data- 
toggle="dropdown">
Option: <span class="selection">Groups</span><span class="caret"></span>
 </button>
 <ul class="dropdown-menu" role="menu">
  <li><a href="#">Group 1</a></li>
  <li><a href="#">Group 2</a></li>
  <li><a href="#">Group 3</a></li>
 </ul>
 </div>
  

и это jQuery

 $(".dropdown-menu li a").click(function(){

 $(this).parents(".btn-group").find('.selection').text($(this).text());
 $(this).parents(".btn-group").find('.selection').val($(this).text());

});
  

По-прежнему не меняет мой заголовок, когда я выбираю любой из них.

Комментарии:

1. Ваш код работает нормально. Это изменяет заголовок.

Ответ №1:

Добавьте это в свой <head> :

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

Возможно, вы забыли включить библиотеку jQuery.

Ответ №2:

Насколько я понял, ваша проблема заключается в том, что вы хотите изменить текст кнопки с помощью текста, связанного с щелчком, если это так, вы можете попробовать это:http://jsbin.com/owuyix/4/edit

  $(function(){

    $(".dropdown-menu li a").click(function(){

      $(".btn:first-child").text($(this).text());
      $(".btn:first-child").val($(this).text());

   });

});
  

Согласно вашему комментарию:

у меня это не работает, когда у меня есть элемент списка, <li> заполняемый с помощью вызова ajax.

итак, вам нужно делегировать событие ближайшему статическому родителю с .on() методом jQuery:

  $(function(){

    $(".dropdown-menu").on('click', 'li a', function(){
      $(".btn:first-child").text($(this).text());
      $(".btn:first-child").val($(this).text());
   });

});
  

Здесь событие делегируется статическому родительскому элементу $(".dropdown-menu") , хотя вы также можете делегировать событие $(document) , потому что оно всегда доступно.