我正在尝试根据其文本向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));
您正在观察的错误很可能是其他地方引起的。
千巷猫影
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);
});
添加回答
举报
0/150
提交
取消