Javascript jquery text()未与字符串进行比较
我正在使用javascript根据用户角色隐藏一些列表项 我从列表项的Javascript jquery text()未与字符串进行比较,javascript,jquery,Javascript,Jquery,我正在使用javascript根据用户角色隐藏一些列表项 我从列表项的text()获取角色。当我将$(“#activeUser”).text()值与字符串进行比较时,它不起作用 我在javascript中使用的HTML块,用于获取列表项的text()值 <ul class="pull-right breadcrumb"> <li><a href="index.php">Home</a> <span class="divider"&g
text()
获取角色。当我将$(“#activeUser”).text()值与字符串进行比较时,它不起作用
我在javascript中使用的HTML块,用于获取列表项的text()值
<ul class="pull-right breadcrumb">
<li><a href="index.php">Home</a> <span class="divider">/</span> </li>
<li id="activeUser" class="active"> <?php echo ucfirst($_SESSION['sewafs_user_role']); ?> </li>
</ul>
但是如果我使用alert看到var testRole的值,它会打印Guest
我尝试使用testRole.toString()/string(testRole)方法将testRole值转换为字符串,但没有任何帮助
请让我知道,我错在哪里。谢谢。尝试使用$修剪字符串。修剪($(“#activeUser”).text())代码>
元素中似乎有空格。您需要修剪字符串开头和结尾的空格:
var testRole = $("#activeUser").text().replace(/^\s+|\s+$/g,'');
你可以在这里看到原因:
问题似乎是从$(“#activeUser”).text()接收到的值中有额外的空格
解决方案:
必须修剪该值,然后将其用于比较,如下所示:
var testRole = $("#activeUser").text().trim();
或
或
以上任何一项都可以
更多关于jQuery trim的信息,请访问
空白测试:
如果要测试是否获得额外的空格,请尝试以下javascript代码:
alert("-" + $("#activeUser").text() + "-");
如果得到“”,则接收值中没有空格。
但是如果你在
之后或之前得到空格,那么这些都是空格,会破坏你的聚会。伙计,首先你必须做什么,这是写正确的选择器
$("#request_history_li").hide();
$("#assign_role_li").hide();
你可以写
$("#request_history_li, #assign_role_li").hide();
或者您可以添加这些元素的相同类,这是正确的
<ul>
<li class="same_class 1"></li>
<li class="same_class 2"></li>
</ul>
好吗?下一步:
至于您的问题,js的加载早于您确定的角色,请使用
$(document).ready(function(){
......
});
非常感谢你。当我遇到这个问题时,我认为空白区可能是问题所在,但修剪力对我没有影响。谢谢你的额外提示。谢谢你提到“我认为这对我很有用。”。
$("#request_history_li").hide();
$("#assign_role_li").hide();
$("#request_history_li, #assign_role_li").hide();
<ul>
<li class="same_class 1"></li>
<li class="same_class 2"></li>
</ul>
$(".same_class").hide();
$(document).ready(function(){
......
});