提问者:小点点

从HTML中删除标签[已关闭]


我只想用javascript从表class=“variations”中删除属性为='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>

我只想保留“船从”; 如有任何帮助,不胜感激


共3个答案

匿名用户

只需在最后创建一个脚本标记,然后使用标签标记获取所有元素,并根据需要删除具有相同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>

匿名用户

使用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;
}

匿名用户

据我所知,您需要通过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();
  }
}

工作演示

Jquery(life-saver)中的一行解决方案

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