我正在尝试调试与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('|')){
答案 0 :(得分:3)
该方法称为indexOf
,如果在字符串中未找到子字符串,则将返回-1
,因此应进行比较:
if (el.method_title.indexOf('|') >= 0)
indexOf()
方法返回字符串中第一次出现指定值的位置。
如果要搜索的值从不出现,则此方法返回-1
。
注意:indexOf()方法区分大小写。
答案 1 :(得分:0)
我建议完全不要使用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();
}
更简单,更高效。