以编程方式创建<DIV>并出现问题

0 html javascript jquery

我是javascript的新手并编写了一段代码(粘贴在下面).我正在尝试建造一个小型战舰游戏.想想那个带有网格的游戏,你可以放置你的船只并开始盲目地点击对手网格,如果它会击中任何一个对手的船只.问题是我需要使用DIV的ID来调用函数作为参数传递.当DIV以编程方式创建时,如下所示,将起作用.这个?: - /// <.DIV id ='what'onclick ='javascript:function(this.ID)'/> ..我看到某种地方......这里面的html:S

js代码是:(有两个网格,由参数表示 - 谁 - ...网格的大小也是参数化的)

function createPlayGround(rows, who)
{
    $('#container').hide();
        var grid = document.getElementById("Grid" + who);
        var sqnum = rows * rows;

        var innercode = '<table cellpadding="0" cellspacing="0" border="0">';
             innercode += '<tr>';
                for (i=1;i<=sqnum;i++)
                {
                    var rowno = Math.ceil(i / rows);
                    var colno = Math.ceil(i - ((rowno-1)*rows));
                    innercode += '<td><div id="' + who + '-' + i +'" class="GridBox'+ who +'" onmouseover="javascript:BlinkTarget(' + i + ',' + who +');" onclick="javascript:SelectTarget('+ i + ',' + who +');" >'+ letters[colno - 1] + rowno +'</div></td>';
                        if (i % rows == 0)
                        {
                           innercode += '</tr><tr>';
                        }
                }
            innercode += '</tr></table>';
            grid.innerHTML = innercode;
        $('#container').fadeIn('slow');
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*Lew 7

听起来你真正想要的是得到刚刚点击的div元素.如果你只想返回被点击的div,你所要做的就是使用"this":

<div id="whatever" onclick="function(this)"></div>
Run Code Online (Sandbox Code Playgroud)

如果您真的对获取div的id有兴趣,可以这样做:

<div id="whatever" onclick="function(this.id)"></div>
Run Code Online (Sandbox Code Playgroud)

但是,听起来你只需要id就可以使用getElementById获取div,第一个代码片段将帮助你跳过这一步.