Как я могу получить родительский div кода javascript (чистый js)?

<div id = "a">
    <div id = "b">
        <script type = "text/javascript">
            var MyDiv1 = GetMyOwnDiv();
        </script>
    </div>
    <div id = "c">
        <script type = "text/javascript">
            var MyDiv2 = GetMyOwnDiv();
        </script>
    </div>
</div>

MyDiv1 должен содержать DOM-часть div id = "a", а MyDiv2 - DOM-часть id = "b". Так что мне не нужны аргументы, чтобы получить это, как функция / объект "this ()" или "self ()".

Кстати. функция для получения дочернего тега «script», являющегося частью кода javascript внутри тега сценария.

Обновлено: более подробный пример.

//---Global loaded script in HEAD---
function LoadAsyncScript(){
    //.....
    var TScriptData = xmlhttp.responseText;
    var TAppID = G_UNIQUEID;
    var TScript = document.createElement('script');
    TScript.setAttribute('type', 'text/javascript');
    TScript.innerHTML = TScriptData;
    document.getElementById('div_main').insertAdjacentHTML('beforeend', '<div id = "_' + TAppID + '_app" style = ""></div>');
    var TApp = document.getElementById('_' + TAppID + '_app');
    TApp.dataset['appid'] = TAppID;
    TApp.appendChild(TScript);
    //.....
};

function CloseApp(V_AppID){
    var TMyAppDiv = document.getElementById('_' + V_AppID + '_app');
    TMyAppDiv.removeChild(TMyAppDiv);
};
//---END OF Global loaded script in HEAD---


//Async loaded and "appendChild" script part
function OnClick_Callback(){
    var TMyDiv = GetMyDivOfThisFunction();
    CloseApp(TMyDiv.dataget['appid']);
};
//......

Как я могу получить эту работу?

Большое спасибо.

Вопрос: Почему тебе это надо? Пахнет XY проблема. Можете ли вы рассказать нам, какова ваша настоящая цель? Потому что я не думаю, что есть простой способ сделать это, да и вообще он кажется совершенно ненужным.

Chris G 03.10.2018 23:20
document.currentScript.parentNode
rmn 03.10.2018 23:24

@rmn ... звучит хорошо, но я получил "null" обратно в "document.currentScript"

xunwichtig 03.10.2018 23:59

@Chris G ... это довольно сложно ... но ... я загружаю скрипты async и хочу удалить его, включая удерживающий div скрипта

xunwichtig 04.10.2018 00:00

@xunwichtig document.currentScript вернет узел только во время начальной обработки. Это не будет работать в обратных вызовах. Если вам нужно удалить тег скрипта, почему бы не присвоить ему id и жестко закодировать строку? Кроме того, если вы делаете это, чтобы люди не смотрели на ваш сценарий, обратите внимание, что они все еще могут.

Chris G 04.10.2018 00:14

@xunwichtig Видите, это проблема XY. Знал это. В любом случае, у вас есть var TScript = document.createElement('script');, причем TScript является прекрасной ссылкой на тег <script>. Все, что вам нужно сделать, это превратить его в глобальную переменную.

Chris G 04.10.2018 00:19

@Chris G ... currentScript: ааа ... ок;) id: ну ... я не знаю, сколько скриптов будет загружено ... ну ... это больше похоже на ОС с приложениями, которые загружаются динамически включая окна приложений и так далее ... и я не хочу передавать много идентификаторов всем функциям, обратным вызовам и запросам внутри скриптовых структур ... итак. простой и "хорошо выглядит" способ решить эту проблему - получить родительский элемент dom сценария для удаления, легко удалить область сценария и его дочерние элементы html, без использования всех элементов dom для поиска всех частей из этого.

xunwichtig 04.10.2018 01:02

Итак, после загрузки страницы вы выбираете некоторый javascript через ajax и помещаете их в динамически созданные теги script и добавляете их в динамически созданные теги div, которые затем добавляете к тегу div, который был создан во время загрузки страницы, верно?

rmn 04.10.2018 09:32

ну ... да ... при загрузке страницы я добавляю в голову какой-то скрипт для управления ... это управление может динамически загружать скрипт через ajax с сервера (по запросу пользователя (нажмите кнопку)), а затем помещает его описанным вами способом на странице ... все верно.

xunwichtig 04.10.2018 14:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
9
77
1

Ответы 1

Есть два способа получить объекты Dom элемента Html.
Assume для Div с id = "a"

  1. Javascript: document.getElementById ('a');
  2. JQuery: var contents = $ ('# a');

Кордиэлемент

Где id = "contents" в его HTML?

Barmar 03.10.2018 23:36

@ N.Anouar ... спасибо, но я не могу использовать JQuery и .. первый способ нужен "аргумент", например "содержимое" ... и у меня нет аргумента;)

xunwichtig 04.10.2018 00:17

Вы можете пометить Div с помощью классов CSS для тега, для основного div - класса maindiv, для дочернего div - класса childdiv и использовать ближайшую функцию для поиска предыдущего родителя.

LPGTE SOFTS 05.10.2018 00:27

var $ divparent = $ ('# b'). ближайший ('. childdiv'); если ($ divparent) .length) {var MyDiv1 = $ divparent; } еще {var MyDiv1 = $ ('# b'). closest ('. maindiv'); }; var $ divparent = $ ('# c'). ближайший ('. childdiv'); если ($ divparent) .length) {var MyDiv1 = $ divparent; } еще {var MyDiv1 = $ ('# c'). closest ('. maindiv'); };

LPGTE SOFTS 05.10.2018 00:31

@ N.Anouar ... "ближайший" подразумевает возможность получения неверных результатов. Так что это не вариант. И, кроме того .. нужен аргумент;)

xunwichtig 05.10.2018 09:46

Если ближайший не является функциональным, зациклить элементы Dom и получить html, используя каждую функцию.

LPGTE SOFTS 05.10.2018 11:49

$ ('. класс'). each (function (i) {var Domelemnt = $ (this) .html ();});

LPGTE SOFTS 05.10.2018 11:51

Другие вопросы по теме