我在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');
}
但该课程仍在影响所有标签。我只是想知道是否有人能指出我在正确的方向?
由于
答案 0 :(得分:1)
当我写这篇文章时,这似乎最简单:
$('a').filter(
function(){
var child = this.firstChild;
if (child){
return child.nodeType == 3 && child.nodeValue.length;
}
}).addClass('buttoneffect');
或者在纯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';
}
}
答案 1 :(得分:1)
试试这个
$('ul a').each(function()
{
if($(this).text()!='')
{
$(this).addClass('buttoneffect');
}
});
答案 2 :(得分:0)
$("ul a").each(function (i, e) {
var $e = $(e);
if ($e.text().length > 0) {
$e.addClass("buttoneffect");
}
});