【问题标题】:jQuery add another html tag to an existing tagjQuery 将另一个 html 标签添加到现有标签
【发布时间】:2022-01-08 10:44:21
【问题描述】:

我有来自浏览器控制台的这段代码,它来自数据表插件的 Javascript(所有代码都被缩短):

<div class="dataTables_length" id="mytable_length">
<label>
"عرض "
<select name="mytable_length" aria-controls="mytable" class="form-select form-select-sm"></select>
 "نتائج"
</label>
</div>

在这段代码下面我有这段代码(所有代码都被缩短了):

<div id="mytable_filter" class="dataTables_filter">
<label>
"بحث: "
<input type="search" class="form-control form-control-sm" placeholder="" aria-controls="mytable">
    </label>
    </div>

这是从浏览器控制台拍摄的图片,只是为了说明问题 https://i.stack.imgur.com/UeLz9.png

现在我需要删除父标签&lt;div id="mytable_filter" class="dataTables_filter"&gt; 并使用/移动带有元素labelinput的子标签,并使用jQuery将它们添加到&lt;div class="dataTables_length" id="mytable_length"&gt;/下方。所以最终的代码是:

<div class="dataTables_length" id="mytable_length">
<label>
"عرض "
<select name="mytable_length" aria-controls="mytable" class="form-select form-select-sm"></select>
 "نتائج"
</label>
<label>
"بحث: "
<input type="search" class="form-control form-control-sm" placeholder="" aria-controls="mytable">
    </label>
</div>

使用jQuery,到目前为止我所做的是:

$(document).ready(function(){
    $('#mytable').DataTable({
        initComplete: function () {
            $('.dataTables_filter').remove();
        },
    });
});

但这只会删除&lt;div id="mytable_filter" class="dataTables_filter"&gt; 及其子标签,这不是我需要的。我该怎么做?

【问题讨论】:

  • 为什么不直接修改它的id和class呢?
  • 怎么样? datatables.js 文件很乱……

标签: javascript html jquery frontend


【解决方案1】:

我需要删除父标签&lt;div id="mytable_filter" class="dataTables_filter"&gt; 并使用元素标签和输入获取/移动子标签并将它们添加到&lt;div class="dataTables_length" id="mytable_length"&gt;/下方

将节点附加到给定容器是 jQuery 中的基本操作。选择节点,使用.appendTo(),完成。

$(function () {
    $('#mytable').DataTable({
        initComplete: function () {
            $('.dataTables_filter').children().appendTo('#mytable_length');
            $('.dataTables_filter').remove();
        },
    });
});

一个 DOM 节点只能有一个父节点。如果您将其附加到不同的父级,它将有效地从其当前父级中删除。

【讨论】:

  • 天哪!完美的!它正是我想要的!现在我只需要为其添加一些样式。谢谢! 100% 最佳答案!
  • 现在我需要为第一个标签添加一个 ID,如 &lt;label id = "test1" 和第二个标签 test 2 也使用 jQuery。我做到了$('label').attr('id', 'test1');,但它给了两个标签相同的ID...我需要每个标签都有不同的ID。如何指定添加哪个标签的id?
  • 对不起,我没听懂,我不明白...我不太擅长 jQuery...你能把我上面例子的代码贴出来吗?
  • @DBblack 没有。滚动到“计算的属性值”并考虑更多。你会弄明白的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多