Есть ли способ в JavaScript получить родительский узел выполняемого в данный момент узла скрипта без атрибута id в теге скрипта?
Чтобы проиллюстрировать, что я имею в виду, если я хочу добавитьimg к документу, и я хочу добавить это изображение к узлу div с идентификатором "div1_id", могу ли я сделать это, не зная идентификатора div, или не добавив атрибут id = "_ scriptid" в тег script,как я должен был сделать ниже?
<script type="text/javascript">
function fn1()
{
var my_img = document.createElement("img");
var t = document.getElementById("_scriptid");
if (t.parentNode) {
t.parentNode.appendChild(my_img);
} else {
document.getElementsByTagName("body")[0].appendChild(my_img);
}
}
</script>
<div id="_div1_id" name="_div1_name">
<script type="text/javascript" id="_scriptid">
fn1();
</script>
</div>
Вот что я хочу сделать:
<head>
<script type="text/javascript">
function fn1()
{
var my_img = document.createElement("img");
var x = get the node that is the parent node of the current script tag,
and so that I can still separate this code out into a function
as shown here, I do not want the <head> tag returned, I want to
get the parent node of the script that called this function, i.e.
the node commented as "div1" below.
x.appendChild(my_img);
}
</script>
</head>
<div> <!-- div1 -->
<script type="text/javascript">
// Call a function to add an image to the enclosing node (div node in this example):
fn1();
</script>
</div>
Причина, по которой я спрашиваю, заключается в том, что я заставляю кого-то говорить мне, что они получают ошибкув IE8 «Ошибка синтаксического анализа HTML: невозможно изменить родительский элемент контейнера до закрытия дочернего элемента (KB927917)», и я подозреваю, что это может быть связано с тем, что я использую appendChild для добавления изображения к элементу body, а элемент body не закрывается,В статье базы знаний говорится, что добавление к прямому родителю (даже если этот тег явно не закрыт) решает проблему.
Спасибо.