附加新 ul 时出现问题
我有一个数据库,其中包含使用嵌套集的类别。
我有一个函数,应该列出某个类别下一级的所有类别。
当文档加载时,起始类别是“1”。这有效。但是当我单击列表项时 - 将此项目 id 作为起点执行相同操作,但没有任何反应。数据已传递到文档,但 jquery 无法将列表项附加到创建的 ul。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="JavaSkript/jquery-1.4.4.min.js"></script>
<style>
ul.kategorien{ background: #FECA40; float: left;}
</style>
</head>
<body>
<div id="kategorien_auflisten" style="background-color: #ffffff;">
</div>
<div id="error"></div>
</body>
</html>
<script type="text/javascript">
function auflisten(start) {
$("div#kategorien_auflisten").append("<ul class='kategorien' id='" + start + "'></ul>")
jQuery.getJSON("Datenbankabfragen/kategorien_auflisten.php", {
startknoten: start
}, function(data) {
if(data != "") {
$.each(data, function(i,data){
$("ul#"+start).append("<li class='' id='" + data.Kategorie_Nr + "'>" + data.Name + "</li>");
});
}
else {
$("div#error").text("Die Kategorien können leider nicht aufgelistet werden.");
}
});
}
$(document).ready(function() {
auflisten(1);
});
$("li").live("click", function() {
auflisten($(this).attr("id"));
});
</script>
我希望任何人都可以提供帮助。 谢谢你!
I have da database with categories using nested sets.
i have a function, that should list me all the categories one level beneath a certain category.
when the document loads, the starting category is "1". this works. but when i click on a list item - to do the same with this items id as startingpoint, nothing happens. the data is passed to the document, but jquery isn't able to apend the list items to the created ul.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="JavaSkript/jquery-1.4.4.min.js"></script>
<style>
ul.kategorien{ background: #FECA40; float: left;}
</style>
</head>
<body>
<div id="kategorien_auflisten" style="background-color: #ffffff;">
</div>
<div id="error"></div>
</body>
</html>
<script type="text/javascript">
function auflisten(start) {
$("div#kategorien_auflisten").append("<ul class='kategorien' id='" + start + "'></ul>")
jQuery.getJSON("Datenbankabfragen/kategorien_auflisten.php", {
startknoten: start
}, function(data) {
if(data != "") {
$.each(data, function(i,data){
$("ul#"+start).append("<li class='' id='" + data.Kategorie_Nr + "'>" + data.Name + "</li>");
});
}
else {
$("div#error").text("Die Kategorien können leider nicht aufgelistet werden.");
}
});
}
$(document).ready(function() {
auflisten(1);
});
$("li").live("click", function() {
auflisten($(this).attr("id"));
});
</script>
I hope anyone could help.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想我看到了几个问题。
首先,您从
li
元素获取 ID:...将其传递给
auflisten
:...将该 ID 分配给
ul
code> element:所以现在看起来你有 2 个具有相同 ID 的元素,这是无效的。
因此,当您尝试使用该 ID 从 DOM 中选择新的
ul
元素时,选择可能会失败:其次,您似乎正在使用数字 ID。这在 HTML4 中无效,并且可能导致类似的选择问题。
I think I see a couple of issues.
First, you're taking the ID from a
li
element:...passing it to
auflisten
:...the assigning that ID to a
ul
element:So now it would seem that you have 2 elements with the same ID, which is invalid.
So it seems likely that when you try to select the new
ul
element from the DOM using that ID, the selection will fail:Second, it seems that you're using numeric IDs. This is not valid in HTML4, and can cause similar selection problems.