使用Div中的class和id无效

时间:2015-12-04 14:37:02

标签: javascript html

我已经读过您class ID Div id这是我想要做的事情,但它似乎没有用。页面加载时,它会根据SQL查询创建一个列表。每个文本框都应该有一个唯一的Div,所有这些文本框都应该被隐藏,所以我给<script type="text/javascript"> window.onload = function () { document.getElementsByClassName('unknownTextField').style.visibility = 'hidden'; } </script> 一个通用的类名。返回的HTML看起来是正确的,但调试器说:

  

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

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

The Div

循环$ rowNumber循环遍历列表

$(function() {

 function random() {
   var words = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"
   var word = words[Math.floor(Math.random() * words.length)];
   var myLength = 8;
   for (var i = 0; i < myLength; i++) {
     $('#content').append(word + i++);
   }
 }

 $('#button').click(function() {
   random();
 });

});

谁能看到我做错了什么?

4 个答案:

答案 0 :(得分:1)

getElementsByClassName()返回一个像object.use []这样的数组来访问各个元素,如:

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

答案 1 :(得分:1)

document.getElementsByClassName();返回一个对象集合(基本上是一个数组)。您需要提供类似此document.getElementsByClassName('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>

答案 2 :(得分:0)

函数getElementsByClassName()返回一个Elements数组。你需要选择一个:

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

这将允许访问第一个。

答案 3 :(得分:0)

由于您使用jQuery标记了问题,我将为您提供一个解决方案:

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