如何在javascript中使用Range对象检查选择的节点?
我想取消选择并检查选择的节点。我正在尝试以下代码。但我认为,我无法指向选择,因此代码失败如何在javascript中使用Range对象检查选择的节点?,javascript,range,Javascript,Range,我想取消选择并检查选择的节点。我正在尝试以下代码。但我认为,我无法指向选择,因此代码失败 <head> <script type="text/javascript"> function SelectAnchorNode () { if (window.getSelection) { // Firefox, Opera, Google Chrome and Safari var selection = windo
<head>
<script type="text/javascript">
function SelectAnchorNode () {
if (window.getSelection) { // Firefox, Opera, Google Chrome and Safari
var selection = window.getSelection ();
if (selection.anchorNode) {
var rangeToSelect = document.createRange ();
alert(selection.anchorNode.nodeName);
} else {
alert ("Your browser does not support this example!");
}
}
</script>
</head>
<body>
<button onclick="SelectAnchorNode ();">Click to check!</button>
<br /><br />
<div>
<div>This is the first line.</div>
<p>This is the second line.</p>
</div>
</body>
函数SelectAnchorNode(){
if(window.getSelection){//Firefox、Opera、Google Chrome和Safari
var selection=window.getSelection();
if(选择.锚定节点){
var rangeToSelect=document.createRange();
警报(selection.anchorNode.nodeName);
}否则{
警报(“您的浏览器不支持此示例!”);
}
}
点击查看!
这是第一行。
这是第二行
您的代码中有一些错误,您缺少一个“}”来关闭函数
此外,由于选择是在按钮上进行的,而不是在锚(链接)上进行的,因此不会返回true
试试这段代码(如果这不是您想要的,我理解,但它可以让您的示例正常工作)
根据您开始选择的位置,您将得到不同的结果,您还需要首先检查是否选择了文本节点(因为我可以直接在正文中进行选择)。但我希望这能让你更接近你的解决方案
问候Tobias很抱歉出现错误。这些错误是在编辑时添加的……此外,我能够显示输出“#text”,但我需要显示选择节点,可以是p或div,基于选择。谢谢你的快速回复。你到底想达到什么目的?
<html>
<head>
<script type="text/javascript">
function SelectAnchorNode () {
if (window.getSelection) { // Firefox, Opera, Google Chrome and Safari
var selection = window.getSelection();
if (selection.anchorNode) {
var rangeToSelect = document.createRange();
alert(selection.anchorNode.nodeName);
} else {
alert ("Your browser does not support this example!");
}
}
}
</script>
</head>
<body>
<a onclick="SelectAnchorNode();">Click to check!</a>
<br /><br />
<div>
<div>This is the first line.</div>
<p>This is the second line.</p>
</div>
alert(selection.anchorNode.parentNode.nodeName);