为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2021-03-29 10:11:32
我正在尝试根据其文本向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函数可以识别出该子字符串确实在文本中?
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

使用if语句代替@ mark.hch建议的切换用例。


关于越野车,您提供的代码无法重现该问题:


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

const needle = 'מרכזית-מדף פתוח';

console.log(haystack.includes(needle));

您正在观察的错误很可能是其他地方引起的。


查看完整回答
反对 回复 2021-04-08
?
千巷猫影

TA贡献1829条经验 获得超7个赞

不好使用“ 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);

});


查看完整回答
反对 回复 2021-04-08
  • 3 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信