如何使用Jquery动态获取所有元素的属性值?

时间:2011-03-05 18:27:45

标签: javascript jquery

嘿,那里, 我有一个导航菜单,我的代码看起来像这样..

    <ul id="nav">
        <li><a href = "#countries" >Countries</a></li>
        <li><a href = "#states" id="">States</a></li>
        <li><a href = "#cities">Cities</a></li>
        <li><a href = "#areas">Areas</a></li>
    </ul>

我想根据用户点击动态获取所有属性值,例如,如果用户点击Countires,它应该获取值#countries,如果用户点击状态,它应该获取值#states等等。

我知道jQuery中的.attr()。这些函数仅获取匹配元素集中的第一个元素。无论我在哪里点击它都只能获取#countries。我不想成为这种情况。

我正在使用以下jquery代码。

<script type="text/javascript">
$(document).ready(function(){
    //when the user clicks on Navigation Menu call this function
    $('ul#nav li a').click(function(){
        //fetch the attribute value.
        $value = $('ul#nav li a').attr("href");
        alert($value);

        //Stop the default behaviour
        return false;
    });
});
</script>

如何动态获取所有属性值并将值存储在不同的变量中?

2 个答案:

答案 0 :(得分:2)

这样可以解决问题:

var $value = $(this).attr('href');

在点击处理程序中,this值指的是已点击的元素。

答案 1 :(得分:2)

更改此行:

$value = $('ul#nav li a').attr("href");

对此:

var $value = $(this).attr('href');

或者就是这样:

var $value = this.getAttribute('href');

(请注意,IE6和IE7中getAttribute的实现已被破坏。)