如何在不存在的div中包装函数?
到目前为止,我已经尝试过.append之前和之后,但这会关闭标签。还尝试了.html,并在功能之后立即换行,没有运气。
$("#testing .input").each(function() {
var s = $(this).find("li .value").text();
// start wrap
$("span.rune > span", this).each(function() {
var e = $(this).text();
$("#test-output").append('<span class="' +e+ ' Rune"></span>');
});
// stop wrap
$("#test-output").append('<span>' +txtToNumber[s]+ '</span>');
});
启动HTML:
<div id="test-output"></div>
结束HTML:
<div id="test-output">
<div class="three">
<span class="Z Rune"></span>
<span class="Y Rune"></span>
<span class="X Rune"></span>
</div>
</div>
谢谢!
答案 0 :(得分:1)
您可以在jQuery中创建元素而无需附加它们。然后他们基本上“还不存在”,至少不在DOM中(他们是断开的)。您还可以做的是创建.three
元素,将其附加到DOM,然后将.Rune
元素附加到它:
// create .three element and append it to the DOM
var $three = $("<div>").addClass("three").appendTo("#test-output");
// map these elements to .Rune elements
$("span.rune > span", this).map(function() {
var e = $(this).text();
return $("<span>")
.addClass(e)
.addClass("Rune")
.get(0);
}).appendTo($three); // and append them to .three