jQuery attr();用iframe?

时间:2012-04-06 16:44:29

标签: javascript jquery html

我正在尝试使用jQuery .attr()属性来获取iframe 的高度或一个具有明确定义高度的img。

的jQuery

var scrollerHeight = $('.caroufredsel_wrapper > ul > li').find('img','iframe').attr('height');

HTML

<div class="caroufredsel_wrapper">
<ul>
    <li><iframe src="movie.swf" width="750" height="422"></iframe></li>
</ul>
</div>

正如现在所写,我将'未定义'作为一个值。关于如何解决这个问题的任何想法?

JSFiddle:http://jsfiddle.net/LmMTL/1/

6 个答案:

答案 0 :(得分:6)

你应该只向.find()提供一个参数 - &gt;选择器'img, iframe'

var scrollerHeight = $('.caroufredsel_wrapper > ul > li').find('img, iframe').attr('height');

http://jsfiddle.net/LmMTL/2/

答案 1 :(得分:5)

这是错误的:

.find('img','iframe')

find()不接受任何额外参数。我想你的意思是:

.find('img, iframe')

答案 2 :(得分:0)

你总是可以给iframe一个id attr。我在你的jsFiddle上测试了它,结果得到422.

答案 3 :(得分:0)

为什么不在框架中设置id直接访问它。

var scrollerHeight = $('#mframe').attr('height');

http://jsfiddle.net/LmMTL/7/

答案 4 :(得分:0)

find()方法使用Selector上下文,因此它将第二个参数视为备用上下文。备用上下文通常用于将选择器定向到不同的DOM。

更改查找选择器以在第一个参数中使用多个元素将起作用。

高度= $('。caroufredsel_wrapper&gt; ul&gt; li')。find('img,iframe')。attr('height');

我还建议使用第一个过滤器/方法,以确保只返回一个结果:

$('。caroufredsel_wrapper&gt; ul&gt; li')。find('iframe,img')。first()。attr('height');

请在此处查看我的测试要点:https://gist.github.com/2321394

答案 5 :(得分:0)

这个错了

    .find('img','iframe')

尝试这个

   $(document).ready(function() {


  var scrollerHeight = $('.caroufredsel_wrapper > ul > li').find('iframe').attr('height');
  alert(scrollerHeight);

 });