当我试图创建一个100%动态的PhoneJS应用程序时,我遇到了$().append()的问题。
我从JQuery API引用中看到的每个示例,以及web上的其他一些随机文章,似乎总是将元素附加到特定的ID中。
请考虑以下几点:
<div id="something"></div>JS
var tmp = $('<div></div>').SomeKindOfElement(WithSomeKindOfContent);
//People always append this to a specific element like so
$('#something').append(tmp);正如您所看到的,它被附加到特定的ID中。
现在,如果我不知道我需要添加多少元素呢?我可以做以下几点
<div id="something1"></div>
<div id="something2"></div>
<div id="something3"></div>
<div id="something4"></div>
<div id="something5"></div>循环遍历我收到的任何项目,并希望不需要添加超过5个元素。
难道我没有办法添加新元素,而不将它们绑定到HTML中的特定元素,而只是创建一个新的<div>元素吗?
只适用于那些知道DEVEXTREME的人
基本上,我正在创建一个类似于这样的dxChart:
$('#chart').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>元素,该元素具有chart的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>但是,再一次,如果我要创建两个图表呢?第一个图表将被第二个图表覆盖。
发布于 2015-09-17 13:21:03
我得到了DevExtreme支持的响应,并给出了以下答案:
http://jsfiddle.net/tm481tew/示例演示如何完成此任务。
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'
    }
});标记
<div id="container"></div>发布于 2015-09-17 09:40:35
不需要指定id,调用var node = $("<div></div>")将创建新的div元素并将其分配给node变量。然后,您可以将节点附加到您想要的位置,例如,将其添加到如下所示的主体:node.appendTo(document.body)。
发布于 2015-09-17 10:01:33
当您创建tmp对象时,它是一个正在“包装”元素的jQuery对象(在您的例子中是div)。
这个tmp对象在创建时会与DOM分离,在使用.append(...)函数将它注入页面之前,它不会出现在UI中。
为了将它注入到页面中,您需要指定“到哪里”注入它,您可以使用任意选择器(无论是#id、.class还是直接使用tmp.appendTo(existingElement)到另一个jQuery对象)来实现。
https://stackoverflow.com/questions/32627033
复制相似问题