gpt4 book ai didi

javascript - 如何将 jquery 对象呈现为 html - 参见 [object Object]

转载 作者:行者123 更新时间:2023-11-30 07:07:19 25 4
gpt4 key购买 nike

我在将 jquery 对象呈现为 html 时遇到问题。

在下面的代码中,tickBox 被呈现为 [object Object] 而不是 html,而所有其余部分都被正确呈现。

我知道我可以将它作为字符串添加,但这不是这里的目标。

为什么 tickBox 不呈现为 html?

const legendData = ['hello world', 'welcome back', 'hotel california', 'never leave'];

const tickBox = $('<div/>', {
class: 'tickBox',
html: $('<div/>', {
class: 'ticked'
})
});

const legendContent = legendData.map(item => {
return $('<li/>', {
dataId: `${item.split(' ')[0]}`,
html: `${tickBox} ${item}`
/* I know I could do this */
//html: `<div class="tickBox"><div class="ticked"></div></div> ${item}`
});
});

$('<div/>', {
id: 'chartLegend',
class: 'legend',
title: 'Chart legend',
html: '<p id="chartLegendHeader">Legend</p>'
}).appendTo(`#chartContainer`);

$('<ul/>', {
class: 'legend',
html: legendContent
}).appendTo('#chartLegend');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chartContainer"></div>

最佳答案

问题是您需要以某种方式将 HTML 节点序列化为字符串,以便插值正常工作。

一种方法是使用相应原生元素的outerHTML:

const legendData = ['hello world', 'welcome back', 'hotel california', 'never leave'];

const tickBox = $('<div/>', {
class: 'tickBox',
html: $('<div/>', {
class: 'ticked'
})
});

const legendContent = legendData.map(item => {
return $('<li/>', {
dataId: `${item.split(' ')[0]}`,
html: `${tickBox[0].outerHTML} ${item}`
});
});

$('<div/>', {
id: 'chartLegend',
class: 'legend',
title: 'Chart legend',
html: '<p id="chartLegendHeader">Legend</p>'
}).appendTo(`#chartContainer`);

$('<ul/>', {
class: 'legend',
html: legendContent
}).appendTo('#chartLegend');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chartContainer"></div>

关于javascript - 如何将 jquery 对象呈现为 html - 参见 [object Object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50811308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com