3

我有一个这样的 div:

<div id="mainDiv">
<script>
javascript here...
</script>
</div>

我基本上想获取它所在的 div 的 ID。

我曾尝试使用 jQuery 和经典 javascript 来执行此操作,但它一直返回未定义。

有没有人有任何想法?谢谢

4

6 回答 6

3

由于浏览器从上到下读取代码,您可以这样做:

香草JS

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

jQuery

var id = $('script').last().parent().prop('id');

当它将读取此代码时,最后一个脚本标签是浏览器正在读取的标签。

这是一个小提琴:http: //jsfiddle.net/nb234/

于 2013-09-27T16:49:54.667 回答
2

看看这个http://jsfiddle.net/78N9A/1/

<div id="parent">
   <script id="scr">
       function show()
       {
         alert('hello');
       }
    </script>
</div>

window.onload = function(){
    var ele = document.getElementById('scr').parentNode;
    alert(ele.id);

}
于 2013-09-27T16:49:33.060 回答
0
<script id="script">

然后

$('#script').parent();
于 2013-09-27T16:50:07.130 回答
0
jQuery(document).ready(function($) {    

    $('div').attr('id');

});

应该为您提供所需的价值。

于 2013-09-27T16:57:26.757 回答
0

JAVASCRIPT:给你的脚本一个 ID,然后使用 parentNode 向上移动 DOM。

var the_div_you_want = document.getElementById("skript").parentNode.id;

JQUERY:很确定 .parent() 是你所追求的

$('#scriptId').parent().attr("id");

无论如何,您需要找到某种方法来定位脚本并向上移动 dom 以找到这种关系。希望这可以帮助。

http://jsfiddle.net/Zbuf8/1/

于 2013-09-27T16:58:37.927 回答
0

如果我理解正确的话,你是说父div上的id事先是未知的,你想用JS来确定它是什么。

如果您无法编辑脚本标签以添加 id,也许您可​​以document.write()在该块中执行一个操作以添加一个隐藏的小元素,然后您可以测试以查看该元素的父元素是什么。

http://jsfiddle.net/AtRYF/

于 2013-09-27T16:48:01.447 回答