【问题标题】:Delete Label from HTML [closed]从 HTML 中删除标签 [关闭]
【发布时间】:2020-06-15 19:12:36
【问题描述】:

我只想从表 class="variations" 中删除带有 javascript 属性的标签 = 'pa_cb5feb1b7314637725a2e7'

<table class="variations">
    <tbody> 
        <tr>
            <td class="label"><label for="pa_1ef722433d607dd9d2b8b7">Ships From</label></td>
        </tr>
        <tr>
            <td class="label"><label for="pa_cb5feb1b7314637725a2e7">Color</label></td>
        </tr>
    </tbody>
</table>

我只想保留“发货自”; 任何帮助表示赞赏

【问题讨论】:

  • 好的。你打算怎么做呢?
  • 您好,请详细说明一下?
  • 帮助什么?你有什么问题?有很多关于删除 DOM 元素、查询 DOM 结构的资源,当然还有关于 Javascript 的强大在线文档。

标签: javascript html


【解决方案1】:

使用querySelector() 选择元素。如果您有多个元素,请使用 querySelectorAll() 并遍历结果列表。然后,您可以使用 remove() 将其从 DOM 中删除。这是一个例子:

var el = document.querySelector('label[for=pa_cb....]');
if (el) {
  el.remove();
}

如果要保留内部 HTML 并将其附加到父级,可以将其存储在变量中,删除标签,然后将内部 HTML 添加到父级。这是一个例子:

var el = document.querySelector('label[for=pa_cb....]');
if (el) {
  var innerHtml = el.innerHTML;
  var parentElement = el.parentElement;
  el.remove();
  parentElement.innerHTML += innerHtml;
}

【讨论】:

  • 感谢您的帮助,但如何仅从该类的表中删除它:
  • @cham 您可以使用不同的选择器:例如table.variations label[for=pa_cb....]
【解决方案2】:

只需在最后制作一个 Script 标记并获取所有带有 label 标记的元素,然后删除与您想要的具有相同 for 属性的元素。这是可能有帮助的代码 -

<html>
<body>
<table class="variations">
    <tbody> 
        <tr>
            <td class="label"><label for="pa_1ef722433d607dd9d2b8b7">Ships From</label></td>
        </tr>

        <tr>
            <td class="label"><label for="pa_cb5feb1b7314637725a2e7">Color</label></td>
       </tr>
   </tbody>
</table>
<script>
   var labeltags = document.getElementsByTagName("label");
   for (var i=0;i<labeltags.length;i++){
       if (labeltags[i].getAttribute("for")=="pa_cb5feb1b7314637725a2e7"){
           labeltags[i].remove();
       }
   }
</script>    
</body>
</html>

【讨论】:

  • 谢谢,但是如何仅从该类的表中删除它:
  • 只需先获取 Variations 类,然后仅查询该特定类中的所有标签标签。您只需要更改脚本标签中的两行 - var variablesClass = document.getElementsByClassName("variations")[0]; var labeltags = changesClass.getElementsByTagName("label");然后你可以继续同样的操作。
【解决方案3】:

据我所知,您需要按 for 值删除标签。

那么这可能会对您有所帮助。

使用 Javascript

var labels = document.querySelectorAll(".variations label[for]");
console.log(labels);

for(let i = 0; i < labels.length; i++ ) {
  if(labels[i].getAttribute('for') === 'pa_1ef722433d607dd9d2b8b7') {
    labels[i].remove();
  }
}

Working Demo

Jquery 中的一条线解决方案(救命稻草)

$('.variations').find("label[for='pa_1ef722433d607dd9d2b8b7']").remove();

【讨论】:

  • 感谢您的帮助,但如何仅从该类的表中删除它:
  • 我已经更新了,请查看答案。如果有帮助,请考虑接受答案。
  • 如果您使用 jQuery,您也可以使用单行解决方案。请查看 jQuery 解决方案的更新答案。
  • 这段代码与 jQuery 一起工作,所以我会将它集成到我的 wordpress 中。
  • 是的,使用 jQuery 解决方案就可以了。您可能需要在 Wordpress 中将 $ 替换为 jQuery
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 2011-06-20
  • 2016-10-09
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多