javascript - 标签值的奇怪行为

标签 javascript jquery

假设 ${currentPage} 的值为 5,即我们位于第五页

有两个链接:

<a id="idArrow" href="#" data-currentpage="${currentPage-1}" title="${currentPage-1}">backward</a>
<!-- the title displays 4 -->

<a id="idArrow" href="#" data-currentpage="${currentPage+1}" title="${currentPage+1}">forward</a>
<!-- note, the title displays 6, it seems ok-->

获取值的脚本:

$('body').on('click', '#idArrow', function() {          
    console.log("running idArrow");
    var pageNumber = $("#idArrow").data('currentpage');
    console.log('pageNumber '+pageNumber);
...

现在是最有趣的部分...... 如果我按后退链接,那么我会得到

running idArrow

pageNumber 4

如果我按前进链接,那么我会得到同样的结果!怎么可能?

running idArrow

pageNumber 4

最佳答案

您可以使用this对象provided by jQuery事件处理函数:

    var pageNumber = $(this).data('currentpage');

请注意,您应该使用唯一的 id 属性。 $("#idArrow") 引用具有该 id 的第一个节点,并解释您所描述的行为。

因此,最好为 on 处理程序提供不同的选择器,例如元素共享的类:

<a class="clsArrow" ... >

代码:

$('body').on('click', '.clsArrow', function(e) {      
    ...
    var pageNumber = $(this).data('currentpage');

关于javascript - 标签值的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686437/

相关文章:

php - 通过PHP在MySQL中插入Jquery

javascript - 在 JavaScript 中使用 osmtogeojson 处理来自 Overpass API 的数据

javascript - Jison/Flex : Trying to capture anything (. *) 位于两个 token 之间但有问题

javascript - 使用 Freebase 建议如何根据另一个字段的选择来过滤一个字段

javascript - 如何动态添加父div的链接

jquery - Rails 在保存到数据库之前弹出窗口

javascript - 堆叠式进度条

javascript - Firefox/Chrome web 扩展 - 如何保存对于控制台来说太大的输出?

javascript - 使用 Javascript 淡出子 div 图像并淡入重叠的父 div 图像

javascript - 我无法使按钮可用