在我的网站上,我有一个最初未填充的无序列表。在页面加载后,我使用jquery和ajax调用从数据库加载数据的php页面。然后它将该数据返回给ajax调用,以便它可以创建一堆列表项并将它们附加到无序列表中。Jquery .next()不按预期方式工作
可以选择这些列表项中的每一个。当他们被选中时,我会向他们追加一个名为“selected-li”的类,它只是将文本加下划线。我也有箭头在列表项之间导航(即向上箭头和向下箭头)。我认为以下方法可行...
$("#down-arrow").click(function(){
$(".selected-li").next().addClass("selected-li");
});
...它的确如此,但并不像预期的那样。我必须点击向下箭头两次才能将课程添加到下一个项目中。出于某种原因,它认为每个显示的内容之间都有一个不可见的列表项。
作为一个解决方法,我做了以下内容:
$("#down-arrow").click(function(){
$(".selected-li").next().next().addClass("selected-li");
});
它现在,但为什么会出现这种情况?为什么它认为那里有一个额外的li?
HTML代码:从AJAX调用返回
<div id="up-down-arrows">
<img id="up-arrow" height="35px" width="35px" src="/../images/circle_arrow_up.png"></img><br><br><br>
<img id="down-arrow" height="35px" width="35px" src="/../images/circle_arrow_down.png"></img>
</div>
<div id="article-list"><ul id="unordered-list"></ul></div>
Javascript代码:
function(data){
for(var i = 0; i < data.length; i++){
title = data[i]["name"];
$("#unordered-list").append('<li title="' + title + '">' + title + '</li><br>');
}
}
可以共享HTML也 – jammykam
Click事件处理程序不应该在所有的工作,因为你的HTML不包含ID元素'不下来,arrow'带班'选择-li'元素。请张贴HTML的相关部分。 –
可以显示处理ajax响应并创建列表项元素的代码吗? –