3

ul に一連のリンクがあります。テキストがあるものとないものがあります。例:

<ul>
<li><a href="google.com">Google</a></li>
<li><a href="yahoo.com">Yahoo</a></li>
<li><a href="bing.com">Bing</a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>

JQuery を使用して、テキストを含むタグにのみクラスを適用したいと考えています。

これまでのところ、私はこれを持っています:

var buttontext =  $('ul a').text();

if (buttontext.length > 0){
$('ul a').addClass('buttoneffect');
}

しかし、クラスはまだすべてのタグに影響を与えています。ここで誰かが私を正しい方向に向けることができるかどうか疑問に思っていましたか?

ありがとう

4

3 に答える 3

1

これを試して

$('ul a').each(function()
               {                                        
                  if($(this).text()!='')    
                  {
                     $(this).addClass('buttoneffect');   
                  }
               });

http://jsfiddle.net/uawBL/11/を確認してください

于 2012-07-12T03:42:27.040 に答える
1

This seemed easiest when I wrote it:

$('a').filter(
    function(){
        var child = this.firstChild;
        if (child){
            return child.nodeType == 3 && child.nodeValue.length;
        }
    }).addClass('buttoneffect');​​

JS Fiddle demo.

Or in plain JavaScript:

var aElems = document.getElementsByTagName('a');

for (var i=0,len=aElems.length; i<len; i++){
    var child = aElems[i].firstChild;
    if (child && child.nodeType == 3 && child.nodeValue.length >= 1) {
        aElems[i].className += ' buttoneffect';
    }
}​

JS Fiddle demo.

于 2012-07-12T03:15:23.057 に答える
0
$("ul a").each(function (i, e) {
    var $e = $(e);
    if ($e.text().length > 0) {
        $e.addClass("buttoneffect");
    }
});
于 2012-07-12T02:50:22.340 に答える