我对JavaScript
非常陌生,我基本上试图构建一个简单的脚本来从像Walmart.com这样的网站获取信息。我用萤火虫来测试我的小片段。我有一个问题得到的价格。
这是我的代码:
var price = document.getElementById('clearfix camelPrice');
console.log(price);
我还试用了".camelPrice"
,并且不断获得null
。
提前多多感谢!
答案 0 :(得分:2)
在这种情况下,您使用的是错误的方法。 getElementById
正如它所说的那样,它通过其id得到一个元素。在Walmart.com上看,'camelPrice'是一个CSS 类。
我们仍然可以通过课程获得元素。你想要的是document.getElementsByClassName()
。此外,您可以将多个参数传递给getElementsByClassName
,如下所示:
document.getElementsByClassName('clearfix', 'camelPrice');
这会抓取同时设置了clearfix
和camelPrice
类的所有元素。
答案 1 :(得分:1)
除了其他人对您的选择所说的id
之外,您可以按类名选择:
document.getElementsByClassName('classname');
较新的浏览器允许您从本机JavaScript中进行类似jQuery的选择:
document.querySelectorAll('#id .classname');
答案 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