Javascript jQuery:无法按数据查找元素
我一直在使用AJAX构建一个表,以获取表的内容。为了浏览它的页面,我使用了bootstrap的分页组件。分页也是用js构建的,元素插入到这个循环中:Javascript jQuery:无法按数据查找元素,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我一直在使用AJAX构建一个表,以获取表的内容。为了浏览它的页面,我使用了bootstrap的分页组件。分页也是用js构建的,元素插入到这个循环中: for (i = 1; i <= pageCount; i++) { var li = $("<li>"); li.append($("<a>").attr("href", "#").data("page", i).html(i)); li.appendTo("ul.pagination"); } // e
for (i = 1; i <= pageCount; i++) {
var li = $("<li>");
li.append($("<a>").attr("href", "#").data("page", i).html(i));
li.appendTo("ul.pagination");
} // end for (i = 1; i <= pageCount; i++)
不幸的是,在“单击”处理程序中使用$(this)
不是一个选项,因为我在其他地方也需要它。所以我改变了我在这里找到的解决方案:
这对我不起作用(我尝试了一些变体): 当我试图在控制台中检查结果元素时,我总是没有得到任何结果 我找到了一个解决方法,使用。每个:
$('ul.pagination li a').each(function(index, element) {
if ($(this).data("page") == page) {
$(this).parent().addClass("active");
}
});
但是这让我很头疼,因为a)这个解决方案不是很优雅,可能速度较慢;b)我无法找出我做错了什么。jQuery。data()
和HTML属性data-***
不一样
因此,如果您想使用此选项:
$('ul.pagination li a[data-page="' + page + '"]').parent().addClass("active");
您必须将循环更改为:
for (i = 1; i <= pageCount; i++) {
var li = $("<li>");
li.append($("<a>").attr("href", "#").attr("data-page", i).html(i));
li.appendTo("ul.pagination");
} // end for (i = 1; i <= pageCount; i++)
for(i=1;我感谢您澄清这一点。我认为,因为存储在data-***中的值可以通过.data()访问,所以这将在两个方向上工作。
$('ul.pagination li a[data-page="' + page + '"]').parent().addClass("active");
for (i = 1; i <= pageCount; i++) {
var li = $("<li>");
li.append($("<a>").attr("href", "#").attr("data-page", i).html(i));
li.appendTo("ul.pagination");
} // end for (i = 1; i <= pageCount; i++)