IE 8 中的 element 总是为空

4

I have the following code:

 if (document.querySelectorAll('[id$=":maindiv:usernametext::content"]')[0].value == null || document.querySelectorAll('[id$="maindiv:usernametext::content"]')[0].value.trim() == "") {
        console.log("maindiv:usernametext::content IS EMPTY !!!);
    }

在IE 8中,即使值不为空,该元素始终显示为空。在浏览器 > IE 8以及Chrome和Firefox中运行时它是有效的。为什么每次都返回null?我正在IE 8标准模式下运行。
更新:
所以我刚才使用console.log(document.querySelectorAll('[id$=":maindiv:usernametext::content"]')[0].value)并且它返回了值,但是这个条件语句却没有起作用?因此似乎选择器正在获取该值,但是当有值时这个if语句正在执行,这个字段只是一个文本字段。

你确定 document.querySelectorAll('[id$=":maindiv:usernametext::content"]') 返回了任何元素吗? - gen_Eric
3
小提示:QSA()[0] 等同于 querySelector(); - Sterling Archer
@user2924127,你正在使用 querySelectorAll()[0],它会获取与选择器匹配的每个元素,然后返回第一个实例。而 querySelector() 则返回选择器匹配的第一个实例。 - Sterling Archer
从我所看到的,那是一个CSS3选择器。因此,我认为IE8在这里不会支持你。 - Sterling Archer
@Sterling Archer:这是为数不多的几个CSS3选择器之一,它完全支持IE8(请记住,我们在这里只考虑单个属性选择器)。 - BoltClock
显示剩余8条评论
1个回答

4
原来trim在IE8中不受支持,我将其删除后代码正常运行!

点击绿色的勾号图标来将答案标记为“已接受”。这将有助于其他可能遇到类似问题的人找到答案。 - Simba
你必须等待两天才能接受自己的答案。 - user2924127

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接