Вопрос по jquery, javascript – Элемент доступа, который содержит текущий <script>

1

У меня есть следующая страница:

<code><div><script>AddSomeContent(??, 1)</script></div>
<div><script>AddSomeContent(??, 2)</script></div>
</code>

Мне нужно заменить?? с окружающими<div> DOM объект, поэтому функцияAddSomeContent может изменить это. Есть ли возможность сделать это?

Перед любыми другими комментариями: у меня нет другого выбора. Я уже пытаюсь взломать существующую страницу, и единственное, что я могу контролировать, это содержимое<script>.

Я использую jquery, но я могу это изменить.

Изменить: для уточнения.AddSomeContent похоже:

<code>function AddSomeContent(somediv, parameter)
{
     $(somediv).append('there goes some data, that I dynamically create from some stuff depending on the parameter');
}
</code>

И я хочу, чтобы первый div содержал результат сparameter = 1второй дивparameter=2

@ Патрик Скотт Он пытается что-то вроде & lt; div & gt; & lt; чем-то? & Lt; / div & gt; в HTML & amp; JS. user1090190 нет, в этом проблема. user1150525
@ user1090190, если они есть, я могу получить к ним доступ с$('#ID'), К сожалению, они не имеют. nothrow
У DIVs есть какая-либо форма уникального идентификатора? @PatrickScott, похоже, он пытается передать объект div, содержащий тег script, в качестве аргумента в AddSomeContent () Snuffleupagus
@PatrickScott, см. Мое редактирование. Это более понятно сейчас? nothrow
запутался в том, что вы пытаетесь достичь Patrick Lee Scott

Ваш Ответ

2   ответа
4

(function() {
  var scr = document.getElementsByTagName('script'),
      parent = scr[scr.length - 1].parentNode;
  // parent is the parent node of the last script on the page
})();

Если у вас есть код в<script> такие теги, тогда при запуске последним скриптом на странице будет тот, который его содержал.

Error: User Rate Limit Exceeded<script>sError: User Rate Limit Exceeded nothrow
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded<script>Error: User Rate Limit Exceeded<script>Error: User Rate Limit Exceeded<script>Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

величивается на 1 с каждым обрабатываемым сценарием, и они обрабатываются по порядку. Так что эта функция получит текущий номер скрипта:

function countScripts() {
    return document.scripts.length;
}

Затем вы можете получить parentNode этого скрипта:

var thisScriptParent = document.scripts[countScripts()].parentNode;

Похожие вопросы