我有一个这样的 div:
<div id="mainDiv">
<script>
javascript here...
</script>
</div>
我基本上想获取它所在的 div 的 ID。
我曾尝试使用 jQuery 和经典 javascript 来执行此操作,但它一直返回未定义。
有没有人有任何想法?谢谢
我有一个这样的 div:
<div id="mainDiv">
<script>
javascript here...
</script>
</div>
我基本上想获取它所在的 div 的 ID。
我曾尝试使用 jQuery 和经典 javascript 来执行此操作,但它一直返回未定义。
有没有人有任何想法?谢谢
由于浏览器从上到下读取代码,您可以这样做:
香草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/
看看这个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);
}
<script id="script">
然后
$('#script').parent();
jQuery(document).ready(function($) {
$('div').attr('id');
});
应该为您提供所需的价值。
JAVASCRIPT:给你的脚本一个 ID,然后使用 parentNode 向上移动 DOM。
var the_div_you_want = document.getElementById("skript").parentNode.id;
JQUERY:很确定 .parent() 是你所追求的
$('#scriptId').parent().attr("id");
无论如何,您需要找到某种方法来定位脚本并向上移动 dom 以找到这种关系。希望这可以帮助。
如果我理解正确的话,你是说父div上的id事先是未知的,你想用JS来确定它是什么。
如果您无法编辑脚本标签以添加 id,也许您可以document.write()
在该块中执行一个操作以添加一个隐藏的小元素,然后您可以测试以查看该元素的父元素是什么。