我正在遍歷一個列表,並且需要爲每個列表元素創建一個jQuery Mobile radio button。所有的單選按鈕都應該在div class="radio-controls"
之內,一旦完成,它們將被附加到DOM中。如何創建jQuery元素的集合並將它們附加到DOM?
這裏是我嘗試:
var label = $("<label/>").attr("data-" + $.mobile.ns + "iconpos", "notext");
barrel = [];
for (var i = 0; i < myListitems.length; i += 1) {
var item = myListitems[i];
barrel.push(
$("<input type='radio' name='radio-" + this.uuid + "' value='radio-" + this.uuid + "-" + i +"' />")
.wrap(label)
.checkboxradio()
);
}
}
循環後,我有一個jQuery的數組,我需要追加。
但是makeArray失敗並返回
context is undefined
內部的jQuery
if ((context.ownerDocument || context) !== document) {
據說這是通過不包括從文檔中選擇的元件的陣列所引起(礦仍不會被添加到DOM),而document.createFragement
不起作用,因爲我認爲我無法將jQuery對象添加到片段。這個做:
var fragment = document.createDocumentFragment();
// in my loop
bullet = $("<input type='radio' name='radio-" + this.uuid + "' value='radio-" + this.uuid + "-" + i +"' />")
.wrap(label)
.checkboxradio()
fragment.appendChild(bullet);
// after loop, add to document
fragment[o.bulletsPos === "top" ? prependTo : appendTo](el);
返回此錯誤:
Value does not implement interface Node.
問題: 有沒有一種方法來生成的jQuery的項目的集合,並把這段DOM?當然,我可以逐個插入每個項目,但是我想創建一個動態的並插入一次的東西。
感謝您的幫助!
你能不能做一個小提琴?我知道你可以用'.map()'函數創建一個元素數組,然後將整個數組附加到一個元素上。我做了一個小提琴,它有幫助嗎(我可能會忽略這個標記)? http://jsfiddle.net/558qq/ – tymeJV
試圖更新你的小提琴。 1sec – frequent
@tymeJV:[http://jsfiddle.net/558qq/1/](http://jsfiddle.net/558qq/1/)但我剛看到,也許它會工作,如果不包裝'$() '圍繞收集。 1sec – frequent