我的脚本在这里遇到了一些错误,在第一个我声明了var text();键入以创建包含一些文本内容的框。
var x=$('#x').text();
在我的第二个.js中我正在对这个var进行一些处理,以确保我的文本我的char值比max-length少,这里是:
var limitMaxLength = function(element) {
var maxLength = $(element).data("max-length");
if (maxLength) {
$(element).on("keypress", function(event){
if (event.target.innerText.length > maxLength || event.keyCode === 13) {
event.preventDefault();
}
});
}
};
所以我在Firefox上遇到了一些问题: [TypeError:event.target.innerText未定义]
在IE,Opera,Chrome和Safari中我的代码运行正常,我只在Firefox上出错。 *抱歉我的英语不好。
答案 0 :(得分:3)
innerText
是一个微软创作,从旧时代开始遗留下来。 Firefox决定不支持w3兼容,textContent
。但是,IE8&下面不支持textContent
,因此,如果您希望支持旧版浏览器,那么您需要进行一些绑定。
var text = elem.textContent || elem.innerText;
或
elem.innerHTML // eww, but it works, eh?
或者,只是放弃IE8(说起来容易做起来难,特别是在工作中)
答案 1 :(得分:1)
innerText
。
您可以使用动态属性名称来解决此问题。首先,检查支持哪个属性:
var textContent = ('textContent' in document) ? 'textContent' : 'innerText';
将textContent
定义为全局变量(或在最外层范围内),然后您可以像这样使用它:
var someText = elem[textContent];
此代码段为您提供textContent
(如果可用),否则为innerText
。另请注意,这两个属性之间存在small difference。
虽然当你使用jQuery时,为什么不呢:
$(event.target).text()