Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jquery中检查空attr()?_Jquery_Each_Attr - Fatal编程技术网

如何在jquery中检查空attr()?

如何在jquery中检查空attr()?,jquery,each,attr,Jquery,Each,Attr,我有几个div是用PHP创建的。div中的锚点始终有一个HREF,即使它是空的。基本上,我试图检测HREF是否为空。如果它有内容,什么也不做,如果它是空的,去掉文本,删除锚,他们把文本放回 这是分区: <div class="title"> <a class="article" href="">Lorem Ipsum</a> </div> 您可以检查是否存在空的href属性,并使用以下方法“展开”这些链接: $(".article[

我有几个div是用PHP创建的。div中的锚点始终有一个HREF,即使它是空的。基本上,我试图检测HREF是否为空。如果它有内容,什么也不做,如果它是空的,去掉文本,删除锚,他们把文本放回

这是分区:

<div class="title"> 
    <a class="article" href="">Lorem Ipsum</a> 
</div> 

您可以检查是否存在空的
href
属性,并使用以下方法“展开”这些链接:

$(".article[href='']").replaceWith(function() { return this.innerHTML; });

.

您可以简单地将属性作为布尔值进行测试,而不是针对未定义的
进行测试:

if ($(this).attr('href')) {
  // href is not blank
} else {
  // href is blank
}

要简单地删除“href”属性,请执行以下操作:

$("#myLink[href='']").removeAttr('href');
$("#myDiv td, a, p, table, nav, header[style='']").removeAttr('style');
对于多目标,例如“样式”属性:

$("#myLink[href='']").removeAttr('href');
$("#myDiv td, a, p, table, nav, header[style='']").removeAttr('style');
这样,您将只在属性为空时删除它,而不是删除整个元素本身

完整的代码示例如下:

$('#myDiv table, tr, td, a, p').each(function() { 
if ($(this).attr('style') == '') { 
    $(this).removeAttr('style'); 
} 
})

html中的文章在哪里我的错误我看到它
这个。href
更容易;)这不只是检查是否有href attr(),而不是它是否为空吗?@Nick我有时会忘记jQuery下面有一个古老的“JavaScript”东西:p@Jared否,它将返回属性的值,如果属性不存在,则返回未定义的值。在JavaScript中,
(空字符串)等效于布尔值false<如果属性不存在或为空,则code>attr()
将计算为
false
。请注意,如果href不存在,IE8也将返回空字符串。if表达式仍然有效,但确实在IE上尝试href=“”和no href作为等效项。我喜欢这样做,即不需要在链接中使用条件branchIt,但当我将其放入代码中时,我得到一个
未捕获的语法错误:意外标记非法
@Jared-听起来你复制了一些奇怪的ascii字符,看起来像是一个空格…尝试删除你复制的任何东西周围的空格。我将其复制/粘贴到记事本中以尝试清除非法字符,现在似乎可以工作了,谢谢!。但是我不确定我是否理解为什么这个代码可以工作?replaceWith()是否具有自动检查属性的功能,如果找不到任何属性,它将执行其功能?@Jared-检查空属性的是
href
,那么
.replaceWith()
只在这些锚上工作,有意义吗?