2010-01-24 67 views
0

我有一個簡單的下拉菜單:使用<a>標籤的內容設置與jQuery李類

<ul id="nav" > 
<li><a href='/'>Parent One</a> 
<ul> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
</ul> 
</li> 
<li><a href='/'>Parent Two</a> 
<ul> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
</ul> 
</li> 

我需要一個類分配給< LI>父標籤等於到< a>標記中的父項名稱。

<ul id="nav" > 
<li class="ParentOne"><a href='/'>ParentOne</a> 
<ul> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
</ul> 
</li> 
<li class="ParentTwo"><a href='/'>ParentTwo</a> 
<ul> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
<li><a href='/'>child</a></li> 
</ul> 
</li> 

我試過這段代碼:

<script language="javascript" type="text/javascript"> 
$('#navigation ul li a').each(function(index) { 
var link = $(this); 
$('li', link.parent()).addClass(link.text()); 
}); 
</script> 

但該類適用於兒童的< li>標籤,而不是父母< LI> - 任何幫助,將不勝感激。謝謝!

+0

可以請編輯您的最後一個代碼塊,使其顯示所有的代碼? :) – Flatlin3 2010-01-24 20:22:10

+0

更新了對不起! – Mel 2010-01-24 20:23:21

回答

1

試試這個:

$(document).ready(function(){ 
    $('#nav>li>a').each(function(){ 
     $(this).parent().addClass($(this).text().replace(/\s/,'')) 
    }); 
}); 

:)

編輯:不思...... OMG ......修復:)

編輯2:新增白色-space修剪。

編輯3:編輯,添加$的document.ready,100%的空白修剪工作;)

+0

關閉,但它返回class =「」 - 所以它不抓取< a > – Mel 2010-01-24 20:27:53

+0

的內容你在哪裏測試?我只是測試並返回了我想要的:) Sry,你想要什麼:D – 2010-01-24 20:30:36

+0

哎呀抱歉,我的錯誤,複製了你的quenstion的錯誤部分 - 複製了想要的結果:D – 2010-01-24 20:34:07

1

這應做到:

$(document).ready(function() { 
    $('#nav > li > a').each(function(index) { 
     $(this).parent().addClass($(this).text()); 
    }); 
}); 

,也將只作用於頂層li元素;以防將類添加到其他更深的嵌套元素。

+0

哇,你在22秒內打敗了我......除了你的例子不會刪除空格 – Harmen 2010-01-24 20:38:02

+0

是啊,我有點困惑,因爲第二個例子給出的鏈接文本中沒有空格... – 2010-01-24 20:40:07

3
$('#nav > li > a').each(function(){ 
    $(this).parent().addClass($(this).text().replace(/\s/, '')); 
}); 
0

這工作:

$("#nav li").each(function() { 
    $(this).addClass($(this).children("a").text()); 
});