2010-03-23 52 views
0

我想申請一些CSS文本,我不能標記跨度。因此,例如:如何選擇未使用CSS/jquery標記的文本?

<li><a href="google.com">This is marked up</a> and this is not </li> 

我要選擇,無論是用CSS(最好)或jQuery的位:and this is not。也許有一種方法選擇整個李然後排除一個,這似乎是一個旁路。

我無法得到它的原因是因爲我使用WP並且喜歡這樣做,而不是深入到無窮無盡的PHP代碼行中。非常感謝您的幫助。

編輯: 我想要做的是應用「display:none」到我想要選擇的文本位。我不能這樣做: li {display: none; },因爲這會採取整個事情了,甚至當我做

li a {display: inline; } 

,這就是爲什麼我一直在尋找一種方法來專門選擇只文本。

我在頁面上有很多。

+0

你想要對該內容做什麼? – Pointy 2010-03-23 11:58:09

+0

非常感謝,我編輯了一些更多的細節。 – Gal 2010-03-23 12:15:50

回答

3
//assuming that you have only one li element 

var a_text = $('li > a').text(); 
var li_text = $('li').text().replace(a_text,''); 

$('li').html($('li').html().replace(li_text,'<span style="background:#000;color:#fff">'+li_text+'</span>')); 

更多然後一個元素:

//assuming more then one 

$('li').each(function(){ 
    var a_text = $(this).children('a').text(); 
    var li_text = $(this).text().replace(a_text,''); 

    $(this).html($(this).html().replace(li_text,'<span style="background:#000;color:#fff">'+li_text+'</span>')); 
}); 

歡呼聲, /馬辛

+0

爲什麼這隻適用於一個li元素? – Gal 2010-03-23 12:17:30

+0

它適用於多於一個,但在上面的示例中,我假設了一個用於清晰的代碼。爲更多你需要使用$('li')。each(function(){...});或其他選擇器。 – Marcin 2010-03-23 12:30:27

+0

我剛剛在上面的答案中添加了對多個元素的選擇。乾杯 – Marcin 2010-03-23 12:33:57

1

我不認爲有辦法做到這一點,至少不使用CSS。要做到這一點IMO最安全的辦法是Ø應用所有所需的樣式應用到li元素:

li { font-size: 18px; ... } 

和否定你不想在a元素的一切:

li a { font-size: 16px; ... } 

(你可能想使用更具體的選擇不僅僅是lia,可能與父母的類名前綴他們)

使用jQuery,你當然可以環繞「未標」區中的新標籤但這是合作mplex並且不會在JS關閉的情況下工作。我不會那樣做。

+0

我用我想要做的事來編輯我的問題。使用這種方法對此不起作用,所以我馬上想到了jquery。 – Gal 2010-03-23 12:16:33

0

你能應用樣式到li元素,然後覆蓋,隨着應用到a風格影響li元素中的元素。

也許創建以下樣式;

li.myListElements { color: #FFF; } 
li.myListElements a { color: #F00; font-weight: bold; } 

並調整標記;

<li class="myListElements"><a href="www.google.com">This is marked up</a> and this is not</li> 
相關問題