包含函数无法识别文本变量中的子字符串

我正在尝试根据其文本向HTML td元素添加“标题”属性。


我写了以下内容:


$("tr.sel-rtac-first td:first-child").each(function(t,x){

    var hours = "";

    var text = $(x).text();

    switch (text) {

        case (text.includes("מרכזית-מדף פתוח") == true):

            hours = "יהדות 401: א - ה  08:00 - 19:00"

            break;

        default: hours = "text"

    }

    $(x).attr("title",hours);

});

我可以在测试中看到text变量接收到正确的文本:


"

                        Cen.lib-Stacks - מרכזית-מדף פתוח -#Four weeks - ארבעה שבועות#

                    "

该文本是希伯来语,但您可以清楚地看到我正在寻找的文本确实是可变文本的一部分。但是,它恢复为默认值,无法识别文本包含该句段。


我还尝试了在代码中不使用== ture:


case (text.includes("מרכזית-מדף פתוח")):

但这也不起作用。


我测试过的先前解决方案是使用.title()函数,但也没有用(我怀疑是因为该元素没有开头的title属性,所以我要添加一个)。


如何确保include函数可以识别出该子字符串确实在文本中?


达令说
浏览 188回答 3
3回答

慕妹3242003

使用if语句代替@ mark.hch建议的切换用例。关于越野车,您提供的代码无法重现该问题:const haystack = 'Cen.lib-Stacks - מרכזית-מדף פתוח -#Four weeks - ארבעה שבועות#';const needle = 'מרכזית-מדף פתוח';console.log(haystack.includes(needle));您正在观察的错误很可能是其他地方引起的。

千巷猫影

不好使用“ switch”和“ case”。您可以这样写:$("tr.sel-rtac-first td:first-child").each(function(t,x){ var hours = ""; var text = $(x).text(); if (text && text.includes("מרכזית-מדף פתוח")) {   hours = "יהדות 401: א - ה  08:00 - 19:00"; } else {   hours = "text"; } $(x).attr("title",hours);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript