我正在尝试调试与IE11的JS不兼容:
对象不支持属性或方法'包含'
我读过includes
很容易被indexof
取代。但是,由于我的JS知识非常有限,我不确定这是否是我需要在这里做出的唯一改变......或者其他部分是否也需要重写?
原版的
if (el.method_title.includes('|')){
el.timeslot = el.method_title.split('|')[1].trim();
el.method_title = el.method_title.split('|')[0].trim();
}
提案
if (el.method_title.indexOf('|')){
该方法称为indexOf
,如果在字符串中找不到子字符串,则返回-1
,因此您应该进行比较:
if (el.method_title.indexOf('|') >= 0)
indexOf()
方法返回字符串中第一次出现指定值的位置。
如果要搜索的值永远不会发生,则此方法返回-1
。
注意:indexOf()方法区分大小写。
我建议不要用includes
/ indexOf
测试字符串 - 只需split
它并检查结果:
var parts = el.method_title.split('|'); // might want to pass a limit as well
if (parts.length > 1) {
el.timeslot = parts[1].trim();
el.method_title = parts[0].trim();
}
更简单,更高效。