Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Div中使用class和id无效_Javascript_Html - Fatal编程技术网

Javascript 在Div中使用class和id无效

Javascript 在Div中使用class和id无效,javascript,html,Javascript,Html,我已经读到,您可以在Div中拥有类和ID,这正是我试图做的,但它似乎不起作用。当页面加载时,它会基于SQL查询创建一个列表。每个文本框都应该有一个唯一的id,并且所有的文本框都应该隐藏,因此我给Div指定了一个通用的类名。返回的HTML看起来正确,但调试器显示: TypeError:undefined不是对象(正在评估) 'document.getElementsByClassName('unknownTextField').style.visibility ='隐藏') window.onl

我已经读到,您可以在
Div
中拥有
ID
,这正是我试图做的,但它似乎不起作用。当页面加载时,它会基于SQL查询创建一个列表。每个文本框都应该有一个唯一的
id
,并且所有的文本框都应该隐藏,因此我给
Div
指定了一个通用的类名。返回的HTML看起来正确,但调试器显示:

TypeError:undefined不是对象(正在评估) 'document.getElementsByClassName('unknownTextField').style.visibility ='隐藏')


window.onload=函数(){
document.getElementsByClassName('unknownTextField')。style.visibility='hidden';
}
潜水艇

循环$rowNumber在列表中循环

<div class='unknownTextField' id='qualTypeUnknown<?php echo $rowNumber ?>'>
<input type='text' name='unknown<?php echo $qualType ?>'>
</div>

getElementsByClassName()
返回类似数组的对象。使用
[]
访问单个元素,如:


document.getElementsByClassName('unknownTextField')[0].style.visibility='hidden'

document.getElementsByCassName()document.getElementsByCassName('className')[0]。要将代码应用于具有类名的所有元素,您将需要一个如下代码所示的循环

<script type="text/javascript">
    window.onload = function () {
        var elem = document.getElementsByClassName('unknownTextField');
        for(var i = 0; i < elem.length; i++){
            elem[i].style.visibility = 'hidden';
        }
    }
</script>

window.onload=函数(){
var elem=document.getElementsByClassName('unknownTextField');
对于(变量i=0;i
函数
GetElementsByCassName()
返回一个元素数组。您需要选择一个:

document.getElementsByClassName('unknownTextField')[0].style.visibility = 'hidden';

这将提供对第一个问题的访问。

既然您使用jQuery标记了疑问,我将为您提供一个解决方案:

$('.unknownTextField').css('visibility','visible');

这是因为
getElementsByClassName
返回一个类似数组的元素对象。您需要对它们进行迭代。尝试访问第一个文件:
document.getElementsByClassName('unknownTextField')[0]
。。看:你用jQuery标记了这个问题,为什么不使用它?!虽然,我讨厌这样做,但现在参考id我得到了相同的错误。稍后我将尝试使其中一个可见,并使用$(“#qualTypeUnknown3”)引用Div;但是说找不到id。有什么想法吗?@RichardGriffiths要么没有3个文本框,要么代码有误。我不知道你的服务器脚本是如何工作的。使用web inspector查看textbox元素并查看它们的ID,然后向我解释您在问题中看到的内容:)从web inspector复制的。。。。所以它似乎在那里。很奇怪@RichardGriffiths你从哪里得到元素的id?请确保将该代码放入具有类代码的onload事件侦听器中。:)
$('.unknownTextField').css('visibility','visible');