達令說
2021-03-29 10:11:32
我正在嘗試根據(jù)其文本向HTML td元素添加“標(biāo)題”屬性。我寫了以下內(nèi)容:$("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 - ????? ??????# "該文本是希伯來語,但您可以清楚地看到我正在尋找的文本確實是可變文本的一部分。但是,它恢復(fù)為默認(rèn)值,無法識別文本包含該句段。我還嘗試了在代碼中不使用== ture:case (text.includes("??????-??? ????")):但這也不起作用。我測試過的先前解決方案是使用.title()函數(shù),但也沒有用(我懷疑是因為該元素沒有開頭的title屬性,所以我要添加一個)。如何確保include函數(shù)可以識別出該子字符串確實在文本中?
3 回答

慕妹3242003
TA貢獻1824條經(jīng)驗 獲得超6個贊
使用if語句代替@ mark.hch建議的切換用例。
關(guān)于越野車,您提供的代碼無法重現(xiàn)該問題:
const haystack = 'Cen.lib-Stacks - ??????-??? ???? -#Four weeks - ????? ??????#';
const needle = '??????-??? ????';
console.log(haystack.includes(needle));
您正在觀察的錯誤很可能是其他地方引起的。

千巷貓影
TA貢獻1829條經(jīng)驗 獲得超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
提交
取消