试图从Walmart.com获取ElementEyById

时间:2012-03-08 00:27:27

标签: javascript

我对JavaScript非常陌生,我基本上试图构建一个简单的脚本来从像Walmart.com这样的网站获取信息。我用萤火虫来测试我的小片段。我有一个问题得到的价格。

这是我的代码:

var price = document.getElementById('clearfix camelPrice');
console.log(price);

我还试用了".camelPrice",并且不断获得null

提前多多感谢!

4 个答案:

答案 0 :(得分:2)

在这种情况下,您使用的是错误的方法。 getElementById正如它所说的那样,它通过其id得到一个元素。在Walmart.com上看,'camelPrice'是一个CSS

我们仍然可以通过课程获得元素。你想要的是document.getElementsByClassName()。此外,您可以将多个参数传递给getElementsByClassName,如下所示:

document.getElementsByClassName('clearfix', 'camelPrice');

这会抓取同时设置了clearfixcamelPrice类的所有元素。

答案 1 :(得分:1)

除了其他人对您的选择所说的id之外,您可以按类名选择:

document.getElementsByClassName('classname');

较新的浏览器允许您从本机JavaScript中进行类似jQuery的选择:

document.querySelectorAll('#id .classname');

http://caniuse.com/queryselector

答案 2 :(得分:0)

看起来您正在尝试为getElementById而不是ID选择器提供类选择器。这就是ID的样子:

<div id="some-id">...</div>

这是一个类的样子:

<div class="some-class">...</div>

不同之处在于,页面上只有一个元素应该具有特定的ID,其中许多元素可能具有相同的类。

答案 3 :(得分:0)

我不确定您是如何在沃尔玛的网站上运行JavaScript的,这并非不可能,但也许您应该指定它,例如,如果Walmart网站位于iframe中,您将无法使用getElementById()你的网站。

另一方面,如果您正在运行某种本地Live Editor / Console,那么可能是可能的。

对于您在上面显示的脚本,ID上有一个错误,因为id只能是一个单词,而您缺少从元素中选择所需的属性类型:

例如,<input>

var price = document.getElementById('id').value

或其他标签,例如<div>

var price = document.getElementById('id').innerHTML