我在这里有这个 Javascript:
function getTxt(obj) {
var first = obj.innerHTML.substring(0, obj.innerHTML.indexOf('<span class=\"item2\">'));
var second = obj.innerHTML.substring(obj.innerHTML.indexOf('<span class=\"item2\">'));
var f = first.replace(/(<([^>]+)>)/ig,'');
var s = second.replace(/(<([^>]+)>)/ig,'');
alert(first + "\n" + second + "\n" + f + "\n" + s);
}
和 HTML:
<span class="item" onclick="getTxt(this)"><span class="item1">MyName</span><span class="item2">555-555-5555</span></span>
在大多数浏览器(FireFox、Chrome、Safari、Opera)中,它会发出警告:
<span class="item1">MyName</span>
<span class="item2">555-555-5555</span>
MyName
555-555-5555
正如预期的那样。但是,在 IE9 中它会发出警告:
<span class="item1">MyName</span><span class="item2">555-555-5555</span>
MyName555-555-5555
所以它将变量“first”和“second”一起放入var“first”中,并将“f”和“s”一起放入var“f”中。
我想知道是否有任何方法可以纠正这个问题,以便 IE9(可能还有其他版本的 IE)能够像在其他浏览器中一样工作。