Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery.append()-如何在没有ID的情况下进行追加_Javascript_Jquery_Html_Devexpress_Devextreme - Fatal编程技术网

Javascript JQuery.append()-如何在没有ID的情况下进行追加

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:

当我试图创建一个完全100%动态的PhoneJS应用程序时,我遇到了
$().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')
try
var 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>