使用jQuery基于链接的内容设置div的类

时间:2010-10-04 17:08:59

标签: 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”或“Meeting”。 (注意:只有一个会显示。我只包括两个作为参考)。

所以如果在页面上显示:

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

div将是

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

这是jQuery:

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

出于某种原因,这不起作用。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分: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');