IE8 没有在 jQuery 地址中执行子字符串
Posted
技术标签:
【中文标题】IE8 没有在 jQuery 地址中执行子字符串【英文标题】:IE8 not performing substring within jQuery Address 【发布时间】:2013-01-16 13:44:46 【问题描述】:在 jQuery 地址内target[1]
可以是Films-by-Name-C7
。我使用以下内容提取7
(target[1].lastIndexOf('?') > 0 ?target[1].slice(0, target[1].indexOf("?")).substr((target[1].lastIndexOf('C')+1)):target[1].substr(-(target[1].length-target[1].lastIndexOf('C')-1)))
这适用于除 IE8 之外的所有浏览器。我不知道它为什么这样做。当我在Fiddle it also doesn't work 中尝试时。那么如何在ie8中从Films-by-Name-C7
中提取7
呢?
【问题讨论】:
【参考方案1】:IE.indexOf() 函数,要定义确切的规范版本,请在尝试使用之前运行它:
Check this link
因为你需要七个 this can be the solution
【讨论】:
检查小提琴。它不在数组上,而是在变量上,它仍然不起作用。 .indexOf 在 IE 那么我无法从Films-by-Name-C7
中提取7
吗? alert((typeof test.lastIndexOf('?') !== undefined ?test.slice(0, test.lastIndexOf("?")).substr((test.lastIndexOf('C')+1)):test.substr(-(test.length-test.lastIndexOf('C')-1))));
什么都不给
或 alert((testvar.lastIndexOf('?') != "-1" ?testvar.slice(0, testvar.lastIndexOf("?")).substr((testvar.lastIndexOf('C')+1)):testvar.substr(-(testvar.length-testvar.lastIndexOf('C')-1))));
同样的事情。我猜 lastIndexOf 也不受支持
不知何故应该可以从Films-by-Name-C7
中提取7
这是使该站点适用于ie8 的最后一件事【参考方案2】:
你的代码的问题是substr
函数的负值
(target[1].lastIndexOf('?') > 0 ?
target[1].slice(0, target[1].indexOf("?")).substr((target[1].lastIndexOf('C')+1)) :
target[1].substr(-(target[1].length - target[1].lastIndexOf('C')-1)))
substr
的负值在浏览器中不起作用
【讨论】:
取决于您的要求。如果你的字符串总是以数字结尾并且你总是需要最后一个数字,那么你可以使用 substr(target[1].length-1,target[1].length)以上是关于IE8 没有在 jQuery 地址中执行子字符串的主要内容,如果未能解决你的问题,请参考以下文章