添加父标签时如何使用append() after() before()

Posted

技术标签:

【中文标题】添加父标签时如何使用append() after() before()【英文标题】:how to use append() after() before() when adding parent tag 【发布时间】:2022-01-19 06:13:43 【问题描述】:

我为#inputPanel添加了多个<option>,然后尝试设置<select>

for (i = 0 ;i < data.length;i++)
    $('#inputPanel').append(`<option>$data[i]['name']</option>`);


$('#inputPanel').after("</select>");
$('#inputPanel').before("<select>");
console.log($('#inputPanel').html()); // there is not select???

select 标签未添加到DOM

我怎样才能做到这一点??

【问题讨论】:

【参考方案1】:

如果 &lt;option&gt; 不是 &lt;select&gt; 的子代,则 &lt;option&gt; 没有意义。首先创建&lt;select&gt;

const data = [ name: 'a' ,  name: 'b' ];
const select = $('<select>').appendTo('#inputPanel');
for (const  name  of data) 
  $('<option>')
    .text(name) // .text is safer than direct interpolation
    .appendTo(select);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="inputPanel"></div>

【讨论】:

谢谢,这看起来非常整洁和酷。效果很好

以上是关于添加父标签时如何使用append() after() before()的主要内容,如果未能解决你的问题,请参考以下文章

jquery中append()prepend()after()before()的区别详解

带有 HTML 表格标签的 Jquery HTML 或 AFTER 或 APPEND

append(),prepend(),after(),before()

append(),prepend(),after(),before()

jQuery 添加元素append() prepend() after() before()

用jq添加或移除div