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
并使用jqueryappend
函数向其中添加li
。在这个append
函数中,我调用了另一个函数来解析更多的xml数据并将其添加到ul
中。但此函数仅显示[对象]
。而当Iconsole.log(li)
infunc()
函数时,它会显示正确的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