繁体   English   中英

为什么这个简单的代码在firefox中失败,但在包括Opera和旧IE版本在内的所有其他浏览器中都可以使用

[英]Why does this simple code fail in firefox yet work in every other browser including opera and old IE versions

function T(x){ return (x.textContent) ? function(y){ x.textContent = y; } : function(y){ x.innerText = y; }; }

T(nodeA)('string');
nodeText = T(nodeB);
nodeText('string');

如果我将(x.textContent)更改为(x.textContent !== undefined)它将在Firefox中工作。 否则我没有任何错误,但是什么也没有发生。 用萤火虫检查表明T(node); 返回function() ,这让我感到困惑。

我是javascript新手,但我认为这可能是一个错误? 我认为它只能为true或false,应该为true并返回第一个函数,但不会返回任何一个。 有人可以说为什么吗?

如果给定节点的textContent是一个空字符串'' ,它的值为false ,这将无法工作。 这就是为什么您应该这样做(typeof x.textContent !== 'undefined')来确保该属性的存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM