【问题标题】:How can I add an element after another element?如何在另一个元素之后添加一个元素?
【发布时间】:2011-01-15 17:18:13
【问题描述】:

我有一个特定的文本框,我想在它之后添加一个 div。 我已经尝试过.append() 函数,但这只会在元素中添加 div。

例如,我有:

<input type="text" id="bla" />

我想把它改成:

<input type="text" id="bla" /><div id="space"></div>

【问题讨论】:

    标签: html jquery append insertafter


    【解决方案1】:

    尝试使用after() 方法:

    $('#bla').after('<div id="space"></div>');
    

    Documentation

    【讨论】:

    • .after() 和 .insertAfter() 方法执行相同的任务。
    • 没错,但这取决于您喜欢的编码方式。我通常已经选择了“#bla”输入,然后再添加额外的内容。不过,这纯粹是我的偏好,我不确定这两种方法是否具有速度优势。
    【解决方案2】:

    试试

    .insertAfter()
    

    这里

    $(content).insertAfter('#bla');
    

    【讨论】:

    • 你的代码不应该更像$('&lt;div id="space"&gt;&lt;/div&gt;').insertAfter('#bla')而不是$('#bla').insertAfter(content);吗?
    【解决方案3】:

    首先,input 元素不应该有结束标签(来自http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT:结束标签:禁止 )。

    第二件事,你需要after(),而不是append() 函数。

    【讨论】:

    • 正确,但是当我尝试 .append() 函数时会发生这种情况。
    • 如果是 XHTML,那么输入元素应该被关闭(但不带有结束标签)。
    • 在 HTML4 中 &lt;input&gt; 不应关闭。
    【解决方案4】:

    解决 jQuery:在另一个元素之后添加元素

    <script>
    $( "p" ).append( "<strong>Hello</strong>" );
    </script>
    

    或

    <script type="text/javascript"> 
    jQuery(document).ready(function(){
    jQuery ( ".sidebar_cart" ) .append( "<a href='http://#'>Continue Shopping</a>" );
    });
    </script>
    

    【讨论】:

    • 这是不正确的。这会将元素附加到父元素中,就像 OP 所述。考虑再次阅读问题并修改您的答案。
    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多