javascript - 如果语句无法使用 jQuery 工作

标签 javascript jquery

我有一个从 div 获取文本的变量。我使用 if 语句比较该文本,然后根据它的真假对其应用 CSS。由于某种原因,我无法让它工作。该变量获取了正确的文本,因为我通过 console.log 进行了验证,但 if 语句不起作用。这是我的代码:

$(document).ready(function(){
    var singleStatus = $('.single-status').text();
    console.log(singleStatus); // This outputs 'Pending' to the console
    if(singleStatus === 'Pending'){
        $('.single-status').css('color', '#f2721d'); // This does nothing
        console.log(singleStatus); // This does nothing...
    }
});

最佳答案

发布我的原始评论作为答案...

假设文本内容中有空格:

控制台日志记录最常见的问题是看不到大量空格。传统上,空白是提供格式但不可见的字符。其中包括空格Tab回车换行

您的 div 很可能在 Pending 周围有一个回车符、空格或制表符(通常是在大多数编辑器中美化 HTML 的结果):

例如它实际上可能看起来像:

<div>Pending
</div>

<div>Pending </div>

甚至

<div>
   Pending
</div>

text() 返回所有文本内容包括空格

解决方案:

在比较之前使用 $.trim 删除不需要的空格:

if($.trim(singleStatus) === 'Pending'){

您不想使用string.trim(),因为并非所有浏览器都支持它。这就是 jQuery 提供静态 $.trim() 方法的原因。

注意: 由于 text() 返回一个字符串(或未定义),因此将比较更改为 == 对问题没有影响.

关于javascript - 如果语句无法使用 jQuery 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763057/

相关文章:

javascript - 在这种情况下如何使用 ng-if 或其他表达式更改文本?

javascript - 如何在 angularjs 的 for 循环中动态创建 $rootScope.$on 事件监听器

javascript - 如何根据url hash url执行一个js函数#nameoffunction

javascript - XSS 攻击在 textarea 标签中不起作用

javascript - ASP.NET MVC - 将服务器端事件传播到客户端

javascript - 为什么我的 jqRouter.renderViewSuccess 事件处理程序被调用了两次?

javascript - 使所有 <div> 包装器具有相同的高度,除非单击 'read more'

javascript - 将 mouseout 事件处理程序添加到 Chart.js 中的图例

jquery - 为什么重用片段时事件监听器会消失?

php - 将 $.get 的响应保存为变量