Javascript 如何区分第一个和第二个复选框?
我有一个带有ID的表,其中包含数百个元素。每个Javascript 如何区分第一个和第二个复选框?,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,我有一个带有ID的表,其中包含数百个元素。每个内部都有。一个标签有特定的等级,它是游戏中的英雄。如果你点击他的复选框和另一个复选框,他需要进入该复选框。他最多可以上/下/左/右/对角移动3个场。 你怎么能做到?我认为我应该以某种方式区分第一个复选框的位置,然后是第二个复选框,然后使距离=(abs(hero_poz-field_poz)),然后距离你可以试着给你所有的复选框一个id或名称来区分它们,我以前从未玩过这个游戏,但我想如果它使用的是“网格”你可以试着把一个id作为一个数字,这样会更容易操
内部都有
。一个标签有特定的等级,它是游戏中的英雄。如果你点击他的复选框和另一个复选框,他需要进入该复选框。他最多可以上/下/左/右/对角移动3个场。
你怎么能做到?我认为我应该以某种方式区分第一个复选框的位置,然后是第二个复选框,然后使
距离=(abs(hero_poz-field_poz))
,然后距离你可以试着给你所有的复选框一个id或名称来区分它们,我以前从未玩过这个游戏,但我想如果它使用的是“网格”你可以试着把一个id作为一个数字,这样会更容易操作
<input id="1" type="checkbox">
屏幕上的位置以左上角的像素坐标表示。要获取元素的位置,请尝试$('input:checked')。position()
。这将创建一个类似于{top:214,left:468}
的对象,因此要从顶部获取位置,请尝试
$('input:checked').position().top
从左边
$('input:checked').position().left
同样,对于你的英雄:
$('.hero').position().top
$('.hero').position().left
1)您尝试了什么?2) 学习拼写标记名。我知道如何使用位置alert(“单元格索引为:“+x.cellIndex+”:“+x.parentNode.rowIndex”)发出警报代码>但下一步该怎么办。实际上,当复选框有标签时,此警报现在不起作用。@Paulie\u d done。为什么会有这么多的仇恨?不知道你的意思…我们期待着某些问题的标准,而这原本不符合…现在它符合了。亲爱的@newielad,Paulie_D的评论中没有仇恨。事实上,你的问题不太合适。请勾选。这就是为什么你应该将它们设为数字,并插入html代码以在循环中创建复选框的原因。如果可以的话,你可以再次查看js代码吗?我编写了一个代码来提醒我这些位置,但是第二次检查并没有提醒第一个位置(应该同时提醒两个位置)。我再次检查了它,我只看到两个提醒(选择一个英雄,你只能选择英雄和他必须去的字段)“谷歌翻译”。我建议您为网格添加一个X和Y:例如,id应该是X,名称可以是Y,通过使用坐标,您可以实现3个步骤的条件
$( document ).ready(function() {
$('input[type="checkbox"]').click(function() {
var cellAndRow;
var cellAndRow2;
var cellIndex;
var cellIndex2;
var rowIndex;
var rowIndex2;
if ($('input:checked').length == 1) {
cellAndRow = $(this).parents('td,tr');
cellIndex = cellAndRow[0].cellIndex;
rowIndex = cellAndRow[1].rowIndex;
alert(cellIndex + ":" + rowIndex);
}else if ($('input:checked').length == 2) {
cellAndRow2 = $(this).parents('td,tr');
cellIndex2 = cellAndRow2[0].cellIndex;
rowIndex2 = cellAndRow2[1].rowIndex;
alert("1st " + cellIndex + ":" + rowIndex + "2nd " + cellIndex2 + ":" + rowIndex2);
}else if ($('input:checked').length > 2) {
this.checked = false;
alert('Select the hero and field, on which he will move');
}else if (!$('input:checked').parent().hasClass('hero')) {
this.checked = false;
alert('Select hero!');
}
});
$("#jump").click(function(){
if ($('input:checked').parent().hasClass('hero1')){
$('input:checked').parent().toggleClass('hero1');
}else if ($('input:checked').parent().hasClass('hero2')){
$('input:checked').parent().toggleClass('hero2');
}
$('input:checked').prop('checked', false);
});
});
<input id="1" type="checkbox">
$(this).attr('id')...