0

这是javascript中当前有效的函数:

var iframe = document.getElementsByTagName('iframe')[0];
var doc = iframe.contentWindow.document;
var originPrice = iframe.contentWindow.document.getElementsByClassName('price type2')[0].innerHTML; 

这是我仍在学习的 jquery 版本,但它不起作用

var originPrice = $('iframe').contents().find('.price type2')[0].html();

Firefox 返回的错误是它是“未定义”。这里可能是什么错误?

感谢您的任何提示,我仍在学习 jquery

4

2 回答 2

1

因为当您选择 时[0],您返回的是 DOM 元素而不是 jQuery 对象。而 DOM 元素没有这个html()功能。

var originPrice = $('iframe').contents().find('.price.type2').eq(0).html();
于 2013-03-01T16:29:50.183 回答
1

当您[0]对 jQuery 对象执行操作时,您会得到一个没有.html()方法的 DOM 对象,因为这是一个 jQuery 方法。

要么用于.eq(0).html()获取 jQuery 对象,要么[0].innerHTML在您有 DOM 对象时使用。

此外,将您的选择器更改find('.price.type2')为查找具有两个类 "price" 和 "type2" 的单个对象。

于 2013-03-01T16:30:55.303 回答