我有一个div。该 div 位于 iframe 中。那个 div 有一个宽度。我想通过 jQuery 获得这个宽度。附件是我这样做的一些冒险经历。请享受!
http://i.imgur.com/AXdfU61.jpg
http://i.imgur.com/Y9MB6Sg.jpg
编辑- 如果我以 $ 开头任何行,为什么我的控制台会抛出错误?
编辑 2 - 将问题简化为基础知识。
我有一个div。该 div 位于 iframe 中。那个 div 有一个宽度。我想通过 jQuery 获得这个宽度。附件是我这样做的一些冒险经历。请享受!
http://i.imgur.com/AXdfU61.jpg
http://i.imgur.com/Y9MB6Sg.jpg
编辑- 如果我以 $ 开头任何行,为什么我的控制台会抛出错误?
编辑 2 - 将问题简化为基础知识。
在 jquery 中,您可以执行以下操作:
$("#iframeId").contents().find('#divId').width();
由于您的 iframe 没有 id,要么更改它,要么通过其他方式找到它,您可以使用 $('iframe') 列出文档中的所有 iframe。关于你的尝试,如果你使用 $('.span9') 这将找到这个类的所有元素,所以你还需要找到另一种方法来获取你的元素。
使用$("#IDofDIV").width();
对于要调整大小/获取宽度的元素,您需要使用 ID 而不是类。类包含许多元素,同一个类甚至可能有数百个元素。您需要指定哪个元素,而不是一组元素。
因此,尽管还有许多其他方法,但使用 ID 将是最简单的事情。
此外,您使用的是 iFrame,因此您可能无法从控制台运行脚本。请参阅您的问题下的第一条评论,@PlantTheIdea 对此进行了解释。
我已经解决了。尽管我对这个问题的解决方法是有效的,但我在我的网站上遇到了 jQuery 的其他几个问题。即, $ 在控制台中不起作用。我知道我引用了 jQuery,但 $ 不是有效对象。
事实证明,当 jQuery 在非冲突模式下运行时,$ 在标准用例中不可用。相反,您将文档就绪函数传递给它,如下所示:
jQuery(文档).ready(函数 ($){
现在它是一个有效的对象,可以正常使用。这允许 jQuery 在非冲突模式下运行并且仍然可以访问 $
你可以在这里阅读:http ://codex.wordpress.org/Function_Reference/wp_enqueue_script
(jQuery noConflict Wrappers 部分)
希望这对某人有帮助!