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