2010-10-04 97 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