我正在尝试使用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/
答案 0 :(得分:6)
你应该只向.find()
提供一个参数 - &gt;选择器'img, iframe'
var scrollerHeight = $('.caroufredsel_wrapper > ul > li').find('img, iframe').attr('height');
答案 1 :(得分:5)
这是错误的:
.find('img','iframe')
find()
不接受任何额外参数。我想你的意思是:
.find('img, iframe')
答案 2 :(得分:0)
你总是可以给iframe一个id attr。我在你的jsFiddle上测试了它,结果得到422.
答案 3 :(得分:0)
答案 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);
});