2010-10-04 39 views
0

這可能很簡單,但我無法弄清楚!我需要解析標籤中的文本,並根據其內容設置div的類。這就是我需要做的:使用jQuery根據鏈接的內容設置div的類

<div id="targetDiv"> Content Here </div> 
<a href="/BookingRetrieve.aspx?ID=6463">Open House - October 21, 2010</a> 
<a href="/BookingRetrieve.aspx?ID=6463">Meeting - October 21, 2010</a> 

我需要設置類基礎上,在標籤內的文本字符串的內容,第一個div要麼「OpenHouse」或「會議」的。 (注:只有一個會顯示,我只包括兩個參考)。

因此,如果這是在網頁上顯示:

<a class="linkText" href="/BookingRetrieve.aspx?ID=6463">Open House - October 21, 2010</a> 

股利將

<div id="targetDiv" class="OpenHouse"> Content Here </div> 

這裏是jQuery的:

if($(".linkText").val().indexOf("House") == 0){$('#targetDiv').addClass('OpenHouse');}; 

出於某種原因,這是行不通的。任何幫助表示讚賞!

回答

3

相反的.val()你需要.text(),像這樣:

if($(".linkText").text().indexOf("House") == 0){$('#targetDiv').addClass('OpenHouse');} 

但這是一個開始,有檢查,如果你想有一個包含做>= 0這樣的:

if($(".linkText").text().indexOf("House") >= 0){$('#targetDiv').addClass('OpenHouse');} 

或者只是使用:contains() ,如下所示:

if($(".linkText:contains('House')").length){$('#targetDiv').addClass('OpenHouse');} 

或者,如果你喜歡的例子是<div>只是之前<a>,你可以這樣做:

$(".linkText:contains('House')").prev().addClass('OpenHouse'); 
$(".linkText:contains('Meeting')").prev().addClass('Meeting'); 
+0

在你的最後一個例子,我想你想'。長度> 0'。 ;-) – 2010-10-04 17:14:38

+0

@Ben - 在JavaScript'> 0'〜='true',它沒有它:) – 2010-10-04 17:15:08

+0

我知道我很接近!這完美的作品!謝謝。 – 2010-10-04 17:26:31