获取[对象HTMLUListElement]而不是对象的内容

时间:2017-02-03 12:40:06

标签: javascript jquery object

我试图显示到列表但是我已经回复了所有代码,因为输出是[object HTMLUListElement]。如果我只是追加价值'本身然后把它放在ul上,但是如果我把它放在一个变量中我先回来[对象HTMLUListElement]:

var listFind = $('.yCmsContentSlot'),
    navLinks = listFind.find('ul'),
    navLinksTotal = navLinks.length,
    listContainer = $('.search-error__content-bottom-list');

    if (navLinksTotal >= 5) {
        navLinksTotal = 3;
    }

    var navBlockSize = 12 / navLinksTotal;

    $(navLinks).each(function(key, value) {
        var navListBlock = '<div class="col-md-' + navBlockSize + '">' + value + '</div>';
        listContainer.append(navListBlock);
    });

我哪里错了?

1 个答案:

答案 0 :(得分:2)

jQuery选择器返回一个类似于数组的对象,该对象包含对与选择器匹配的任何元素的本机引用。

然后通过each()迭代这个类似数组的对象。

考虑到这一点,您可以看出对每个UL的引用依次传递给回调。所以value是指向元素本身的(命名不佳的)变量。你当前看到的是尝试输出 - 即转换为字符串 - 一个对象而不是它的属性的结果。

进一步推断,您只需要知道如何获取元素的内部HTML。

这是通过value.innerHTML完成的。

最好重命名value element - 虽然我们正在谈论明智的命名,navLinks可能不是存储非链接的变量的最佳名称,但是,而是 list 元素。