This code在 Internet Explorer 中返回 false。还有其他选择吗?
<!DOCTYPE html>
<html>
<head>
<style>
#myDIV {
border: 1px solid black;
}
</style>
</head>
<body>
<div id="myDIV">
<p>I am a p element inside div, and I have a <span id="mySPAN">span</span> element inside of me.</p>
</div>
<p>I am a p element inside div, and I have a <span id="mySPAN">span</span> element inside</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var span = document.getElementById("mySPAN");
var text = span.childNodes[0];
var div = document.getElementById("myDIV").contains(text);
document.getElementById("demo").innerHTML = div;
}
</script>
</body>
</html>
我想检查 div 元素是否包含所选范围:
function getRange(root): Range {
const sel = window.getSelection();
const range = sel.getRangeAt(0);
if (range && range.commonAncestorContainer !== root && root.contains(range.commonAncestorContainer)) {
return range.cloneRange();
}
return null;
}
我想检查div元素是否包含选中的范围:
最佳答案
你不需要子节点。
因为 DOM
包含检查完整的 DOM
而不是 Node Child。请尝试以下功能而不是您的功能。它正在发挥作用!
<script>
function myFunction() {
var span = document.getElementById("mySPAN");
var div = document.getElementById("myDIV").contains(span);
document.getElementById("demo").innerHTML = div;
}
</script>
演示:https://www.w3schools.com/code/tryit.asp?filename=FQFMFOKPLHO3
关于javascript - .contains() 在 Internet Explorer 中返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870747/