获取jQuery下拉插件的选定值

时间:2018-03-03 12:15:51

标签: javascript jquery html

我正在使用jQuery dropdown插件,我希望被选中value,但在文档中没有这样的选项,我如何通过jQuery获取选定的值?



(function($) {

  $(function() {

    $('ul').dropdown({
      closeReset: false,
      nested: true,
      collision: true,
      selectParents: true
    });

  });

}(jQuery));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-dropdown/2.0.3/jquery.dropdown.js"></script>
<link rel="stylesheet" href="http://dane.one/wordpress/wp-content/uploads/dropdown.min_.css?ver=7e2962cd876e2a95be90b37baa97b096" type="text/css" />
<ul>
  <li>group 1
    <ul>
      <li>assest 1
        <ul>
          <li>bingo!</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>group 2
    <ul>
      <li>assest 2
        <ul>
          <li>bingo!</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>
&#13;
&#13;
&#13;

此问题也在github之前提出,但没有答案。 看起来插件不适用于此代码段,请参阅演示 here (我使用嵌套演示)

请注意,我使用ul而不是select option

2 个答案:

答案 0 :(得分:1)

小心使用select documentation 使用select而不是ul。这样,您就可以获得选定的价值。 无法发表评论,因此会在此处发布

更新回答:此处了解如何获取所选

var selectedValue = '';
$(document).on('click', '.dropdown-menu li.dropdown-item', function(e) {
    selectedValue = $(this).find('span').text();
});

答案 1 :(得分:1)

@CodeSavy 回答是正确的方向和逻辑,但有一些问题。如果创作者未提供获取所选值的选项,则应自行执行此操作,打开jquery.dropdown.js搜索var classes = {您将找到此selected: 'dropdown-selected',,因此在选择每个项目后,它将会将此类添加到所选项目。在上一个答案中,您可以在text()之后获得所有项click,但在下面您只能获得选中项目text()

$(document).on('click', '.dropdown-item', function() {
  if ($(this).hasClass('dropdown-selected')) {
    var val = $(this).text();
    console.log(val);
  }
})

但是对插件脚本进行一些更改后,您可以添加一些属性或值以获得更好的结果。