Обращение к элементу
Допустим, есть документ с таким содержимым:
Код:
...<br>sometext<div></div><br>sometext<br>...
function blablabla(){
$('div').append(document.createElement('br'));
$('div > br').unwrap();
}
После срабатывания скрипта div удаляется и на его место становится свежесозданный br и дерево элементов "перезагружается". Вопрос: могу ли я каким либо образом еще раз обратится к этому же br'у? По индексу искать неполучится т.к. кол-во всех br'ов неизвестно. Может его можно как нибудь "запомнить" или "пометить"? У моего генератора идей уже села батарейка:( . Надеюсь на вашу помощь. |
var br = document.createElement('br');
br.id = 'myBR';
$('div').append(br);
br - ссылка на вставленный бр, а можно найти его и по ID - myBR |
Цитата:
Ты его добавляешь в конец - значит он последний, вот тебе и индекс. Цитата:
// вот запомнил
var o=document.createElement('br');
$('div').append(o);
Цитата:
|
devote,
Поиск по id неподходит, а вот идея с переменной мне понравилась, но возникает встречная проблема:
var div = $('div');
var br = $('br', div)[0];
alert(br.length);
Возвращает undefined. почему? у меня синтаксическая ошибка? |
Цитата:
JS действует по своим законам, а не по наитию каких-то кодеров... Ты сам-то хоть понял чего накодил? :D |
Всё, всем спасибо, разобрался. Сейчас будем применять на практике!
|
А на практике не всё так гладко... В общем не буду ходить вокруг да около, вот изначальный скрипт с которым я работаю:
var sel = iframe_doc.getSelection();
var br = sel.getRangeAt(0).createContextualFragment('<br>');
sel.getRangeAt(0).insertNode(br);
$('br', sel.anchorNode).unwrap();
br.id = "myid";
br.length показывает что имеется 1 такой элемент в наборе, но вот в дереве он его не находит, и br.id = "myid"; не отрабатывает.Может есть вариант, как ему присвоить id? |
Вытащить последний элемент можно с помощью метода .length - 1, вот например:
var array = ["Перевый элемент","Второй элемент","Третий элемент"];
alert("Последний элемент это " + array[array.length - 1]);
Выводит Последний элемент это Третий элемент |
Алек,
Вы не поняли, в данном коде браузер мне "говорит" что в |
Путём проб узнал что браузер находит элемент в дереве элементов через переменную т.е.:
var br = document.createElement('br');
$('div').append(br);
br.parentNode //вернёт div
но в моём случае возвращает null. Может вопрос глупый, но всёже - что в данном случае означает null? нет родителя? не нашёл элемент? |
| Часовой пояс GMT +3, время: 08:40. |