Obtain a reference to <script> parent element [duplicate]

I have a similar problem like posted here but instead of obtain the parent id, how Can I get a reference to the script parent without having to code an id for the script tag?

For example, I have the following code injected to a website:

<div>
     some other html tags
     <script src="http://path_to_my_script.js"></script>
</div>

What I need is that in my path_to_my_script.js file I can get a reference to the outer div.

There is a catch and is that the code will be copied&pasted in several places in the same webpage, which makes an identifier useless.

There is any chance to do that without to code an id in the entire code?

If the solution is with jQuery the better :D

Thanks in advance.


Solution 1:

As mentioned in What is the current element in Javascript?, the current <script> element is also the last <script> element, at the time of execution.

The answer also applies to your case, since the load of the external script is not deferred (through the async or defer attribute).

var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var parentTag = scriptTag.parentNode;

Most browsers (even IE6) support document.scripts. Firefox supports this object as of version 9. So, the following code can also be used:

var scriptTag = document.scripts[document.scripts.length - 1];
var parentTag = scriptTag.parentNode;

Solution 2:

You can use the attribute selector to get a script with a specific src, then parent('div') to jump to its containing div element.

var parentDiv = $('script[src="path/to/script.js"]').parent('div');