如何获取动态属性值

时间:2017-09-22 13:32:51

标签: javascript php jquery ajax laravel

<ul class="dropdown-menu" id="parent">      
@foreach($cat as $category)

    <li class="dropdown-submenu">
        <a id={{$category->id}}>{{$category->category_name}}</a>
    </li>

@endforeach

这是我的脚本而且它总是给我相同的值1

我希望始终更改来自数据库的值

$("#parent li a").click(function(){
    var id = $('#parent li a').attr('id');
    alert(id);
});

4 个答案:

答案 0 :(得分:7)

像这样更改你的jQuery函数:

$("#parent li a").click(function(){

    var id = $(this).attr('id');  // use `this`

    alert(id);
});

请注意 您使用的代码var id = $('#parent li a').attr('id');将始终考虑第一个<a>的第一个<li>错误。

this将引用被点击的元素。因此,您将获得正确的价值。

答案 1 :(得分:4)

来自数据库的

我建议您使用data-*自定义属性来保存可在当前元素上下文中使用.data(key)获取的任意数据

$("#parent li a").click(function(){
    var id = $(this).data('id');    
});
<li class="dropdown-submenu">
  <a data-id="{{$category->id}}">{{$category->category_name}}</a>
</li>

答案 2 :(得分:1)

click事件中,您可以使用$(this)作为点击元素:

$('#parent li a').click(function() {
    var id = $(this).attr('id');
    alert(id);
});

答案 3 :(得分:1)

如果您在点击处理程序中使用this引用(在本例中为单击元素),则可以访问您正在查找的正确id属性。

$("#parent li a").click(function(){
    var id = $(this).attr('id');
    alert(id);
});