12

PHP を使用して作成されたいくつかの div があります。div 内のアンカーには、空白であっても常に HREF があります。基本的に、HREF が空白かどうかを検出しようとしています。コンテンツがある場合は何もせず、空白の場合はテキストを取り除き、アンカーを削除して、テキストを元に戻します。

ここにdivがあります:

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

これが私のコードです:

jQuery(document).ready(function($) { //required for $ to work in Wordpress

    $(".article").each(function(){
        if ($(this).attr('href') !== undefined) {
            return;
        } else {
            var linkTitle = $(this).html();
            $(this).parent().empty().html(linkTitle);
        }                               
    });    
//-->
});
4

3 に答える 3

18

次に対してテストする代わりに、属性をブール値としてテストすることができますundefined

if ($(this).attr('href')) {
  // href is not blank
} else {
  // href is blank
}
于 2010-09-22T20:13:46.383 に答える
16

空の属性を確認し、次のようにhref使用してこれらのリンクを「ラップ解除」できます。.replaceWith()

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

ここで試してみることができます

于 2010-09-22T20:13:04.760 に答える
1

「href」属性を単純に取り除くには:

$("#myLink[href='']").removeAttr('href');

'style' 属性など、複数のターゲティングの場合:

$("#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'); 
} 
})
于 2012-06-24T17:09:31.670 に答える