Сообщение от aiaks
|
Добрый день =)
Такая проблема, есть пользовательское выделение, необходимо просмотреть всех родителей этого выделения и получить их id.
function selection_parents(){
var empty = new Array()
$target=$(window.getSelection().getRangeAt(0).startContainer.parentNode)
var range = window.getSelection().getRangeAt(0);
for (i=0;i<$target.parents().length;i++)
{
empty[i]=$target.parents()[i].tagName
var $currentobject = $($target).parents()[i];
alert($currentobject.attr("id")) // выводит пустой alert, хотя id у тегов есть.
}
}
|
Не знаю, как у вас вызывается selection_parents и сколько можно выделить одновременно, но получение всех родителей можно сделать проще:
<html id="id-1">
<head>
<style type="text/css">
#id5 {
width: 100px;
height: 100px;
background: red;
}
</style>
</head>
<body id="id0">
<div id="id1">
<div id="id2">
<div id="id3">
<div id="id4">
<div id="id5"></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
document.getElementById('id5').onclick = function () {
var parent = this.parentNode;
var arr = new Array();
arr.push(parent);
while (parent.nodeName != 'HTML') {
parent = parent.parentNode;
arr.push(parent);
}
for (var i = 0; i < arr.length; i++) alert('nodeName=' + arr[i].nodeName + '\nid=' + arr[i].id);
}
</script>
</body>
</html>