如果目标属性的值为null,我需要从锚点中删除它

i need to delete target attribute from anchor if its value is null

本文关键字:删除 属性 目标 null 如果      更新时间:2023-09-26

为了W3c验证,我需要从目标值为空的所有锚点中删除目标属性

我体内有以下代码

<div>
 <a href="#" target="">home emput</a>
 <a href="#" target="blank">home</a>
 <a href="#" target="">home empty</a>
 <a href="#">home</a>
</div>

这是我的脚本

$(document).ready(function () {
  var target = []
  var i = 0;
  $("body a").each(function () {
   target[i++] = $(this).attr("target");
   if($(this).attr("target") == ""){
     $(this).removeAttr("target");
   }
  });
 console.log(target);
});

当我查看控制台时,此代码工作正常。删除了空目标。但当我查看源(Ctrl+u(时,目标仍然存在,

我只想删除它们。

试试这个,它的工作

$(document).ready(function () {
  var target = []
  var i = 0;
  $("body a").each(function () {
   target = $(this).attr("target");
   if(target == "")
   {
    $(this).removeAttr("target");
   }
  });
 //console.log(target);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
 <a href="#" target="">home emput</a>
 <a href="#" target="blank">home</a>
 <a href="#" target="">home empty</a>
 <a href="#">home</a>
</div>

当您使用"$"时,我假设您有jQuery

$("a[target='']").each(function() {
    $(this).removeAttr("target");
});

https://jsfiddle.net/6g6t60pa/

尝试删除。。

$('a[target=""]').removeAttr('target');

但在考虑W3验证时,您无法实现这一点,因为它在不执行JS的情况下获取页面内容,因此最佳实践是使用服务器端脚本(PHP(隐藏它。