jquery attr()方法不起作用,但javascript版本

时间:2013-03-01 16:56:06

标签: javascript jquery dom

这是我目前的javascript代码

var image = iframe.contentWindow.document.getElementsByClassName('productVisu').getElementsByTagName('img').getAttribute('src');

这适用于检索图像的URL属性。但是,当我尝试这个jquery版本时:

var iframe = document.getElementsByTagName('iframe')[0];
var doc = iframe.contentWindow.document;
var image = $('iframe').contents().find('.productVisu').$('img').attr('src');

我得到firefox错误,这不是一个函数。如何解决此问题并使jquery版本正常工作?

由于

3 个答案:

答案 0 :(得分:3)

改变这个:

$('iframe').contents().find('.productVisu').$('img').attr('src');

为:

$('iframe').contents().find('.productVisu img').attr('src');

答案 1 :(得分:1)

我不确定您的原始代码是如何工作的,因为getElementsByClassNamegetElementsByTagName会返回节点列表,而不是单个节点。

请改为尝试:

var image = iframe.contentDocument.querySelector(".productVisu img").src;

当您可以使用Vanilla JS时,切勿使用jQuery。这就像用大锤拧螺丝一样。

答案 2 :(得分:1)

我不明白你的例子中前两行代码的必要性。你可以很容易地做到这一点:

var image = $('iframe').eq(0).find('.productVisu img').attr('src');