Javascript 在ul上附加li有问题

Javascript 在ul上附加li有问题,javascript,jquery,dom-manipulation,Javascript,Jquery,Dom Manipulation,我正在创建一个ul并使用jqueryappend函数向其中添加li。在这个append函数中,我调用了另一个函数来解析更多的xml数据并将其添加到ul中。但此函数仅显示[对象]。而当Iconsole.log(li)infunc()函数时,它会显示正确的li 这是我的密码 container.append( '<ul>' + '<li>' + '<h4 class="tit

我正在创建一个
ul
并使用jquery
append
函数向其中添加
li
。在这个
append
函数中,我调用了另一个函数来解析更多的xml数据并将其添加到
ul
中。但此函数仅显示
[对象]
。而当I
console.log(li)
in
func()
函数时,它会显示正确的
li

这是我的密码

container.append(
            '<ul>'
                + '<li>'
                    + '<h4 class="title stitle">' + from 
                        + '<section><span class="subtitle">' + routeTime + ' mins    ' + routeDist + ' km</span></section><br>'
                    + '</h4>'
                    + '<ul class="contents">'
                        + '<li>' + '<img src="' + walk + '" />' + '</li>'
                        + '<li>' + '<span class="">' + startTime + '   ' + distance + ' km</li>'
                        + func(lines) //<-- function call here
                    + '</ul>'
                + '</li>' +
            '</ul>'
            );
container.append(
“
    ” +“
  • ” +''来自 +''+routeTime+'mins'+routeDist+'km
    ' + '' +“
      ” +“
    • ”+“+”
    • ” +“
    • ”+“”+开始时间+“”+距离+”公里
      +func(lines)//您返回的是jQuery对象,但看起来您想要的是HTML

      在函数末尾尝试以下操作:

      return li.outerHTML;
      

      问题是,函数返回一个jQuery对象。当您在此对象上使用
      +
      运算符时,您将其用作字符串。因此尝试将其转换为字符串,结果是
      [object object]

      jQuery对象有一个名为的方法,该方法以字符串形式返回该jQuery对象的HTML内容,您可以在连接中安全地使用它。不过,在您的情况下,您需要一个
      .outerHtml()
      方法,该方法在jQuery中不存在,但您可以添加它(请参阅)。或者,您可以简单地使用DOM(不是jQuery)
      .outerHTML
      属性,Firefox过去不支持它,但现在支持了(从版本11开始,如果我错了请纠正我)

      您可以对
      func
      的返回值调用该方法,如下所示:

      ...
      + '<li>' + '<span class="">' + startTime + '   ' + distance + ' km</li>'
      + func(lines).outerHtml() //<-- function call here
      + '</ul>'
      ...
      
      。。。
      +“
    • ”+“”+开始时间+“”+距离+”公里 +func(lines).outerHtml()//当您这样做时
      var li=$(“
    • ”)
      ,您正在传递对为DOM创建的列表对象实例的引用。您正在操作此对象,因此您将以[Object Object]的形式获得输出,而在控制台中,您将看到该对象的HTML


      您应该字符串化li对象引用,或者在$.html(li)或li.html()中使用它

      我按照你的方式做了,但现在它没有连接
      li
      ,而只连接
      li
      中的内容。我如何才能连接
      li
      ,包括其内容?@x4f4r-Hm,这是真的。这个问题应该有帮助:@x4f4r更新了我的答案以解决你的问题。是的,该链接有帮助。谢谢:)
      ...
      + '<li>' + '<span class="">' + startTime + '   ' + distance + ' km</li>'
      + func(lines).outerHtml() //<-- function call here
      + '</ul>'
      ...
      
      + func(lines).get(0).outerHtml //<-- function call here