在JavaScript中使用.text
对象属性可能会在IE8中产生意外的结果(空白字符串或未定义,即使它包含值)。IE8和javascript对象属性,文本
您可以使用.innerHTML
对象属性作为解决方法。 IE8似乎喜欢这个。
或者,为了实现可靠的跨浏览器兼容性,您可以使用jquery来访问对象的文本属性,我可以这样做:$(this).text()
查看好的jQuery解决方案的答案。
原问题:是'text'是IE8中的保留javascript字吗?我很好奇,因为我找不到说明这一点的任何资源。
* 的JavaScript(optionObj.innerHTML
)解决方案:*
// Look for a match in the section dropdown and select it.
$.each($('#' + mySelect + ' option'), function(key, optionObj) {
// Switched 'optionObj.text' to 'optionObj.innerHTML' for cross-browser compatibility
if (optionObj.innerHTML == strTextToMatch) {
// Found a match
$('#' + mySelect).val(optionObj.text);
$('#' + mySelect).trigger('change');
}
});
在IE8中,optionObj.text
有时会返回一个空字符串,即使我可以在我的调试器中看到它包含的值(我可以看到扩大optionObj
对象)!奇怪的是,10%的时间,optionObj.text
将返回除空字符串以外的实际值。这就是说,optionObj.innerHTML
似乎可靠工作。
我几乎没有人捍卫Internet Explorer(s)的行为,但脚本解释器确实工作正常。 – Pointy 2011-06-07 14:58:38
由于您使用的是jQuery,有没有原因您不使用['.text()'](http://api.jquery.com/text)或['.html()'](http: //api.jquery.com/html)?只是好奇! :) – Rob 2011-06-07 15:24:31
我也想这么想,但是这样的问题会不会导致译员呢? http://www.tgerm.com/2009/01/javascript-ie-anchortext-property.html – BumbleB2na 2011-06-07 15:26:31