附加新 ul 时出现问题

发布于 2024-11-16 00:16:34 字数 1420 浏览 2 评论 0原文

我有一个数据库,其中包含使用嵌套集的类别。

我有一个函数,应该列出某个类别下一级的所有类别。

当文档加载时,起始类别是“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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

舂唻埖巳落 2024-11-23 00:16:34

我想我看到了几个问题。

首先,您从 li 元素获取 ID:

$("li").live("click", function() {
    auflisten($(this).attr("id"));  // ID of the <li>
});

...将其传递给 auflisten

function auflisten(start) {

...将该 ID 分配给 ul code> element:

.append("<ul class='kategorien' id='" + start + "'></ul>")

所以现在看起来你有 2 个具有相同 ID 的元素,这是无效的。

因此,当您尝试使用该 ID 从 DOM 中选择新的 ul 元素时,选择可能会失败:

 $("ul#"+start) // Trying to select based on a non-unique ID will cause problems.

其次,您似乎正在使用数字 ID。这在 HTML4 中无效,并且可能导致类似的选择问题。

I think I see a couple of issues.

First, you're taking the ID from a li element:

$("li").live("click", function() {
    auflisten($(this).attr("id"));  // ID of the <li>
});

...passing it to auflisten:

function auflisten(start) {

...the assigning that ID to a ul element:

.append("<ul class='kategorien' id='" + start + "'></ul>")

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:

 $("ul#"+start) // Trying to select based on a non-unique ID will cause problems.

Second, it seems that you're using numeric IDs. This is not valid in HTML4, and can cause similar selection problems.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文