javascript - 为什么这个 JavaScript 不工作

标签 javascript jquery arrays

我正在尝试构建一个向我的网站导航添加面包屑的功能。但是,现在我有两个问题。 1) 由于某种原因,crumb 数组一次只能保存 2 个 crumb,2) 即使 html 元素存储在 crumbs 数组中,也只会呈现新 crumb 的 HTML。另一个面包屑呈现为:

[object HTMLLIElement]

//脚本

function add_crumb(name) {

    // get current bread crumbs
    var crumbs = $('#breadcrumbs ul li').toArray();

    // no current bread crumbs, so we don't need an arrow image
    if (crumbs.length == 0) {

        var new_crumb = "<li class='crumb' style='display:inline'> " + name + " </li>";

    } else {

        var new_crumb = "<li class='crumb' style='display:inline'><img class='bc_arrow' src='images/icons/breadcrumb_arrow.png' width='19' height='18'> " + name + "</li>";

    }

    // add new bread crumb to array
    crumbs.push(new_crumb);

    // render
    $('#breadcrumbs').html('<ul>' + crumbs.join('') + '</ul>');


}
无论如何,我通过创建一个新的空白数组并在每个元素上调用 .innerHTML 来解决第二个问题(尽管我不明白为什么我必须这样做,因为 jQuery 的网站说元素是这样存储的:

[<li id="foo">, <li id="bar">]

但是如果有人能帮我弄清楚为什么它一次只存储两个面包屑,我真的非常非常感激。

谢谢

最佳答案

HTML 元素对象不是字符串,您不能简单地使用 .join 将它们连接到字符串。尝试附加它们。

$('#breadcrumbs').html('<ul />').find("ul").append(crumbs);

关于javascript - 为什么这个 JavaScript 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817939/

相关文章:

javascript - 如何根据 Geo ip 显示或隐藏元素

javascript - 在 Fabric.js Canvas 上添加网格

python - Numpy 数组声明错误

javascript - 尝试使用 HTML5 和 ajax 上传文件

jquery - 数据表 : 'bAutoWidth: false' not working when 'sScrollY' is set

c++ - 每个操作做两次

c++ - 为什么两个相同数组的元素彼此相等

javascript - 树结构未按预期构建

javascript - ClearInterval不会停止

javascript - 使用jquery获取行列文本