Вставка элемента в место вызова функции
Всем привет! Возникла проблема:
надо вставить элемент в место вызова функции... трабл заключается в том что он создаётся функцией var my_elem = document.createElement(); т.е. необходимо получить объектную ссылку на созданный элемент. document.write(); не подходит так, как с него нельзя получить объектную ссылку, а создавать элемент с id нельзя по определению задачи. Посоветуйте как я могу вставить элемент в место вызова функции и при этом получить на вставляемый элемент объектную ссылку? Заранее спасибо! |
(function init(){
var d=document.getElementsByTagName("div");
d[d.length-1];//ваш элемент, если, конечно, он был вставлен последним в документе
})();
Но если честно, я так и не понял, в чем проблема. Опишите подробнее. |
1) создаю элемент
2) его надо вставить в место вызова функции 3) после на него надо получить объектную ссылку, но без использования id |
Цитата:
|
какая?
я же не могу сделать так: 1) document.createElement(); 2) вставить его в место вызова ???? |
var my_elem = document.createElement();//my_elem - вот вам и ссылка |
ага, это я знаю. А вот как теперь его отрисовать в место вызова функции?
|
Что такое место вызова функции?
|
<span><script>place_here(tag);</script></span>
function place_here(tag)
{
var my_elem = document.createElement(tag);
>>что сюда для отрисовки в место вызова функции?
}
|
Самое оптимальное использовать document.write.
|
я тоже так думал но написав:
var my_elem = document.createElement(tag); document.write(my_elem); я, разумеется, получил ошибку |
Вам действительно нужно создавать элемент через document.createElement?
|
нет, мне нужно создать элемент и привязаться к нему без использования id, желательно по объектной ссылке
|
Это какое-то искусственное ограничение чтоли?
|
это такой принцип работы. Способ есть?
|
Способ зависит от того, почему нельзя использовать id.
|
потому что нет способа к нему привязаться. оно не должно использоваться по заданию.
я прошу определённой помощи, а именно: 1) создать элемент 2) вставить его в место вызова функции 3) привязаться к нему объектной ссылкой, без использования ИД |
Цитата:
<script type="text/javascript">
function placeHere(tag) {
var el = document.createElement(tag);
el.innerHTML = tag;
var spans = document.getElementsByTagName('span');
spans[spans.length - 1].appendChild(el);
}
</script>
--><span><script type="text/javascript">placeHere('b');</script></span><--
Это не будет работать, если в элементе span есть ещё что-то. Нормальный работающий пример можно придумать, только зная все условия задачи и предпосылки для этих условий. |
Решение додумал сам: Оптимально и практично:
function plaseHere('text')
{
document.write('<div></div>');
var elem = document.getElementsByTagName('div');
elem = elem[elem.length - 1];
elem.innerHTML = text;
return true;
}
При этом имеем вставленное в нужное место содержание + объектную ссылку на элемент без использования идентификатора, которую можно привязать к чему - либо. В моём случае к родителю. |
function placeHere( tagName, text ) {
var node = document.createElement( tagName );
node.appendChild( document.createTextNode( text + "" ) );
var scripts = document.getElementsByTagName("script"),
lastScript = scripts[ scripts.length - 1 ];
if ( lastScript.parentNode ) {
lastScript.parentNode.insertBefore ( node, lastScript );
}
node = scripts = lastScript = null;
}
<span><script type="text/javascript">placeHere("strong", "вставлен 'strong'")</script></span>
|
а как же всемогущий объект event?
вызов функции в нужном элементе по нужному событию, сам вызов app(event)
function app(e)
{
//получаем ссылку на вызвавший элемент с учетом ИЕ
var elem = '';
if('target' in e)
{
elem = e.target
}
else
{
elem = e.srcElement
}
//добавляем внутрь любой текст
elem.innerHTML = 'text';
//или же можно создать вызвавшему елементу потомка
var ch = document.createElement('div');
elem.appendChild(ch);
//и уже ему добавить текст внутрь
ch.innerHTML = 'text';
}
|
Slavenin,
вы о чём вообще? |
| Часовой пояс GMT +3, время: 00:57. |