jQuery从下拉列表中获取id不起作用

时间:2016-05-02 13:02:17

标签: javascript jquery html

我需要从下拉列表中获取ID,但我的代码不能正常工作

 $('.search-panel .dropdown-menu').find('a').click(function(e) {
    alert(this.id);
    e.preventDefault();
    var param = $(this).attr("href").replace("#","");
    var concept = $(this).text();
    $('.search-panel span#search_concept').text(concept);
    $('.input-group #search_param').val(param);

});

这是下拉代码

<ul class="dropdown-menu" role="menu">
  <li id='1'><a href="#contains">น้อยมาก</a></li>
  <li id='2'><a href="#its_equal">น้อย</a></li>
  <li id='3'><a href="#greather_than">ปานกลาง </a></li>
  <li id='4'><a href="#less_than">นิยม  </a></li>
  <li id='5'><a href="#all">นิยมมาก</a></li>
</ul>

5 个答案:

答案 0 :(得分:6)

<a>没有id,只有<li>。使用:

alert(this.parentNode.id);

此处this引用<a>而非<li>

答案 1 :(得分:1)

尝试gem install json

答案 2 :(得分:1)

第一个建议: - 标签不包含任何id,因此如果要获取id,它将返回null。 第二个建议: - 事件没有正确绑定。

试试这个

 $(document).ready(function()
        {
        $(".dropdown-menu > li > a").click(function(e) {
        alert(this.parentElement.id);
        e.preventDefault();
        var param = $(this).attr("href").replace("#","");;
         var concept = $(this).text();
         $('.search-panel span#search_concept').text(concept);
         $('.input-group #search_param').val(param);

       });
     });

JSFiddle链接:http://jsfiddle.net/z2waxz81/1/

答案 3 :(得分:0)

您是在寻找id代码的<li>还是指代href属性?您的代码似乎没有在任何地方使用id

<ul class="dropdown-menu" role="menu">
    <li id='1'><a href="#contains">น้อยมาก</a></li>
    <li id='2'><a href="#its_equal">น้อย</a></li>
    <li id='3'><a href="#greather_than">ปานกลาง </a></li>
    <li id='4'><a href="#less_than">นิยม  </a></li>
    <li id='5'><a href="#all">นิยมมาก</a></li>
</ul>

<script>
$('.search-panel .dropdown-menu').find('a').click(function(e) {
    alert(this.id); // undefined -> this refers to the <a> tag but you don't seem to use an id anywhere?
    e.preventDefault();

    var $a = $(this);
    var $li = $a.parent('li');
    console.log($li.attr('id')); // this will log the parent `id`

    var param = $a.attr('href').replace('#', ''); // get the href attribute from the <a> tag and remove the pound symbol
    var concept = $a.text(); // get the text content of the <a> tag

    $('.search-panel span#search_concept').text(concept);
    $('.input-group #search_param').val(param);
});
</script>

答案 4 :(得分:0)

使用以下代码处理锚标记或li标记

$('div').each(function (index, value) { 
    $(this + ' > a').click(function(e) {
        alert($(this).attr());
    });// if you want to process the anchor tag
    $(this + ' > li').click(function(e) {
        alert($(this).attr());
    });// if you want to process the li tag
});