我试图找到点击的<a>
标记,将其href属性保存到数组并打印出数组。
问题:数组似乎正在保存href的值,但是当我尝试使用for循环时它不会显示它。当for循环位于click事件处理程序内部时,它只显示数组内的所有值(并且我不想在那里打印for循环)。想法?
$(document).on('click', 'a', function () {
var url = $(this).attr('href')
hrefTracker.push(url);
});
for (var i = 0; i < hrefTracker.length; i++) {
console.log(hrefTracker[i]);
}
答案 0 :(得分:1)
当然,您的代码无法正常运行。原因如下:
您首先分配了一个事件监听器来监听<a>
元素的点击次数。事件侦听器中的代码仅在单击<a>
元素时运行,但是,for循环仅在您的网页加载时运行,并且在<a>
元素被点击时不会运行。你真的需要将for循环放在事件监听器中,就像这样;
var hrefTracker = [];
$(document).on('click', 'a', function() {
var url = $(this).attr('href');
hrefTracker.push(url);
for (var i = 0; i < hrefTracker.length; i++) {
console.log(hrefTracker[i]);
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="javascript:void(0)">Some links</a>
<br>
<a href="javascript:void(1)">Some links</a>
<br>
<a href="javascript:void(2)">Some links</a>
<br>
<a href="javascript:void(3)">Some links</a>
<br>
&#13;
请注意,您在读取var url = $(this).attr('href')
的行后面也省略了分号。