簡體   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