2013-03-22 63 views
1

我執行以下操作:使用jQuery Mobile的非選擇器

$('ul')。attr('data-role','listview');

而且,默認所有我的無序列表是列表視圖,但我想排除無序列表是一個<nav>標籤內的,如:

<nav> 
<ul> 
<li><a href="#">One</a></li> 
<li><a href="#">Two</a></li> 
</ul> 
</nav> 

問:我怎樣才能改變我的選擇不包括那些位於nav元素內部的無序列表?

回答

4

你可以做篩選出只有那些ul S中的不是nav的直接孩子:

$('ul').not('nav > ul').attr('data-role','listview'); 
+0

呀,數據(「角色」,「列表視圖」)並沒有爲我工作。我不得不使用attr('data-role','listview')。 – 2013-03-22 16:02:25

+0

哦..這很奇怪。你使用的是哪個版本的jQuery? – techfoobar 2013-03-22 16:03:02

+0

@Phillip'data('role','listview')'不會設置實際的屬性'data-role'。所以如果你從外部代碼讀取這個屬性,你將需要使用'attr'函數。 'data()'函數僅適用於jQuery對象,而不適用於DOM本身(除了閱讀)。 – 2013-03-22 16:04:23