div内部的Jquery包装函数

时间:2012-11-18 17:49:02

标签: jquery

如何在不存在的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>

谢谢!

1 个答案:

答案 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