我是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)
听起来你真正想要的是得到刚刚点击的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,第一个代码片段将帮助你跳过这一步.