Javascript JQuery.append()-如何在没有ID的情况下进行追加
当我试图创建一个完全100%动态的PhoneJS应用程序时,我遇到了Javascript JQuery.append()-如何在没有ID的情况下进行追加,javascript,jquery,html,devexpress,devextreme,Javascript,Jquery,Html,Devexpress,Devextreme,当我试图创建一个完全100%动态的PhoneJS应用程序时,我遇到了$().append()的问题 我从jQueryAPI参考中看到的每个示例,其他SO和web上的其他随机文章,似乎总是将元素附加到特定的ID中 考虑以下几点: HTML <div id="something"></div> 但如您所见,我将此图表绑定到标记中的元素,该元素的id为图表,如下所示: <div data-options="dxView : { name: 'graph', title:
$().append()
的问题
我从jQueryAPI参考中看到的每个示例,其他SO和web上的其他随机文章,似乎总是将元素附加到特定的ID中
考虑以下几点:
HTML
<div id="something"></div>
但如您所见,我将此图表绑定到标记中的
元素,该元素的id为图表
,如下所示:
<div data-options="dxView : { name: 'graph', title: 'graph' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } ">
<h1 class="headline">Dashboard</h1>
<div id="chart"></div>
</div>
</div>
仪表板
但是,如果我要创建两个图表呢?第一个图表将被第二个图表覆盖。您不需要指定id,调用
var node=$(“”)
将创建新的div元素并将其分配给节点变量。然后,您可以将节点附加到所需的位置,例如如下所示的body:node.appendTo(document.body)
当您创建tmp
对象时,它是一个正在“包装”元素的jQuery对象(div
)
这个tmp
对象在创建时会从DOM中分离出来,在使用.append(…)
函数将其注入页面之前,它不会出现在UI中
为了将它注入页面,您需要指定“何处”注入它,并且您可以通过使用任何您想要的选择器来实现,无论它是#id
,.class
,还是使用tmp.appendTo(existingElement)直接注入另一个jQuery对象
我从DevExtreme支持人员那里得到了回答:
该示例演示了如何完成此任务
JAVASCRIPT
$('<div>')
.appendTo('#container')
.dxChart({
dataSource: [
{ 'Product': 'Pie', 'QTY': 25 },
{ 'Product': 'Chocolate Cake', 'QTY': 12 },
{ 'Product': 'Muffins', 'QTY': 78 }
],
series: { name: 'Test', argumentField: "Product", valueField: "QTY" },
commonSeriesSettings: {
type: 'bar'
}
});
$(“”)
.appendTo(“#container”)
.dxChart({
数据源:[
{‘产品’:‘馅饼’,‘数量’:25},
{“产品”:“巧克力蛋糕”,“数量”:12},
{“产品”:“松饼”,“数量”:78}
],
系列:{name:'Test',argumentField:'Product',valueField:'QTY},
常识设置:{
类型:'bar'
}
});
标记
<div id="container"></div>
id应该是唯一的,您可以将它附加到类选择器中,或者它似乎不起作用。我想我可以做node.appendTo('some-random-id/class')
tryvar node=$(“xxx”)
,有没有可能您没有在页面上实现空div?然后它只是添加内容xxx
,而不是实际的JQuery对象,我将以另一种方式尝试它<代码>$(“”).appendTo(document.body).dxChart({…})
奇怪的是,如果我把它附加到
中,它不会显示任何内容。类似这样:tmp.appendTo('#random')
页面上是否存在此div(#random)?或者是您动态创建的另一个div,但仍然没有将其注入页面…?存在于页面上很难猜出哪里出错了。。。尝试组合一个JSFIDLE来重现您的问题,这将更容易帮助您:-)相当困难,因为我正在使用DevExtreme创建一个PhoneJS应用程序。我相信这就是问题所在。我在他们的支持论坛上发了一条帖子。等待回应。一旦我收到他们的来信,我会立即向他们汇报。这与我之前告诉你的一样代码>
<div data-options="dxView : { name: 'graph', title: 'graph' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } ">
<h1 class="headline">Dashboard</h1>
<div id="chart"></div>
</div>
</div>
$('<div>')
.appendTo('#container')
.dxChart({
dataSource: [
{ 'Product': 'Pie', 'QTY': 25 },
{ 'Product': 'Chocolate Cake', 'QTY': 12 },
{ 'Product': 'Muffins', 'QTY': 78 }
],
series: { name: 'Test', argumentField: "Product", valueField: "QTY" },
commonSeriesSettings: {
type: 'bar'
}
});
<div id="container"></div>