Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Object 动态创建表_Object_Loops_Onclick - Fatal编程技术网

Object 动态创建表

Object 动态创建表,object,loops,onclick,Object,Loops,Onclick,我想我的问题对于js专家来说很简单(我是js的初学者) 在我的脚本中,我动态创建了一个表。在html代码中,我有一个按钮,当你点击这个按钮时,我希望所有的表格单元格都填充一些颜色。 我有一个单独的函数来填充表格单元格,但我遇到的问题是,当我单击按钮时,只有表格的最后一个单元格被填充。我假设这个问题与闭包有关,因为表单元格是在循环中创建的 代码如下: HTML: 点击 JS: var obj=新对象; obj.x=document.createElement('table'); 文件.正文.附

我想我的问题对于js专家来说很简单(我是js的初学者)

在我的脚本中,我动态创建了一个表。在html代码中,我有一个按钮,当你点击这个按钮时,我希望所有的表格单元格都填充一些颜色。 我有一个单独的函数来填充表格单元格,但我遇到的问题是,当我单击按钮时,只有表格的最后一个单元格被填充。我假设这个问题与闭包有关,因为表单元格是在循环中创建的

代码如下:

HTML:

点击
JS:

var obj=新对象;
obj.x=document.createElement('table');
文件.正文.附件(obj.x);

for(i=0;i每次for循环迭代时,obj.z都会被一个新的单元格覆盖,这意味着只会引用最后一个单元格。设置表中所有单元格样式的更简单方法是只需更改
本身的
背景色

如果要以另一种方式执行此操作,则需要逐个循环单元格元素,并在执行时为每个元素设置样式。更简单的方法是使用,在值中添加
className
属性(如本例中的
theTable
),然后使用以下代码:

$('table.theTable td').css('backgroundColor','red');

这将使用class
theTable
(它使用CSS选择器)选择表中的所有
元素,并将其
backgroundColor
CSS属性设置为
red

您好,非常感谢您的回复!如果您能提供一些关于如何逐个遍历单元格元素的示例,我将不胜感激
var obj = new Object;

    obj.x = document.createElement('table');
    document.body.appendChild(obj.x);

        for(i=0;i<10;i++){
            obj.y = document.createElement('tr');
            obj.x.appendChild(obj.y);

                for(j=0;j<10;j++){
                    obj.z = document.createElement('td');
                    obj.z.appendChild(document.createTextNode(j));
                    obj.y.appendChild(obj.z);
                }
            }

    function fill(){

        obj.z.style.backgroundColor='red';

    }
$('table.theTable td').css('backgroundColor','red');