HTML:
<div class="container" id="1" onclick="test()"> </div>
<div class="container" id="2" onclick="test()"> </div>
<div class="container" id="3" onclick="test()"> </div>
<div class="container" id="4" onclick="test()"> </div>
JS:
{
document.getElementById(e.target.id).appendChild(document.NewDiv("div", {id:"element1"}));
if (document.getElementById("1").contains(document.getElementById("element1")) &&
document.getElementById("2").contains(document.getElementById("element1")))
{
console.log("yes")
}
else
{
console.log("no")
}
};
此代码返回"0";否";当element1在id为1和2的容器中时,但在我的意思中;是";
但是这个代码返回";是";应该是这样的-如果element1存在于两个容器中的至少一个容器中
{
document.getElementById(e.target.id).appendChild(document.NewDiv("div", {id:"element1"}));
if (document.getElementById("1").contains(document.getElementById("element1")) || //<-- changed
document.getElementById("2").contains(document.getElementById("element1")))
{
console.log("yes")
}
else
{
console.log("no")
}
};
我希望这个代码返回";是";如果element1在容器1和容器2 中
{
document.getElementById(e.target.id).appendChild(document.NewDiv("div", {id:"element1"}));
if (document.getElementById("1").contains(document.getElementById("element1")) &&
document.getElementById("2").contains(document.getElementById("element1")))
{
console.log("yes");
}
else
{
console.log("no");
}
};
在两个不同的容器中不能有相同的元素。因此,&&
条件不可能为真,而||
条件可以为真。
id
属性必须是唯一的,同一文档中不应有多个具有相同id
的元素。如果碰巧有多个元素具有相同的id
,则只能选择具有document.getElementById()
的第一个元素。
然而,理论上,您可以使用myelement.querySelector('[id="element1"]')
来获取myelement
容器中具有id
的元素,但您应该通过不使用相同的id来修复代码。
if (document.getElementById("1").contains(document.getElementById("1").querySelector("[id='element1']")) &&
document.getElementById("2").contains(document.getElementById("2").querySelector("[id='element1']"))))
{
console.log("yes")
}
else
{
console.log("no")
}