<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>
如何动态获取所有属性值并将值存储在不同的变量中?
答案 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
的实现已被破坏。)