我正在尝试根据该类的li文本来创建条件。我有一个菜单,根据选择的li来分配一个类。
HTML 会议室描述已被选中,因此课程活动正在显示
<div class="vmenu" style="position: relative; top: 42px;">
<ul>
<li class="active">
<span>Room description</span>
</li>
<li class="sep"> </li>
<li>
<span>Room Amenities</span>
</li>
jquery的
var package = $(".detail-layer.package-detail-layer")
var active = $(".active").text()
if($('#tbLayerDiv').css('display') == 'block')
{
if (active == "Room description")
{
//do something
}
}
答案 0 :(得分:0)
active
和<li>
之间的换行符, <span>
将包含换行符,因此它与Room description
不匹配。您可以使用.trim()
删除空格:
var active = $(".active").text().trim();
或者您可以从范围中获取文字:
var active = $(".active span").text();
但最好在元素本身中使用一个属性来识别所选的菜单项。
<li class="active" data-name="room-desc">
然后你可以这样做:
var active = $(".active").data("name");
以后:
if (active == "room-desc")
通过这种方式,您可以更改文本中的措辞而无需重写代码(想象一下,如果用户要求Google翻译翻译网站,则会破坏您的脚本。)
答案 1 :(得分:0)
https://jsfiddle.net/94xw513j/
<div class="vmenu" style="position: relative; top: 42px;">
<ul>
<li data-val='1'>
<span>Room description</span>
</li>
<li class="sep"> </li>
<li data-val='2'>
<span>Room Amenities</span>
</li>
$("ul li").on('click', function(event) {
$(this).parents("ul").find("li").removeClass("active");
$(this).addClass("active");
switch(eval($(this).data("val")))
{
case 1: // room description
case 2: // room amenities
alert($(this).text() + ' is active ');
break;
}
});