Javascript 如何获取elementsByClassName和getElementById

Javascript 如何获取elementsByClassName和getElementById,javascript,html,Javascript,Html,您好,我正在将一个脚本从jQuery重写为纯JS,我不知道还能怎么写。我想获取id为'przecenajs'的类'form basket'中元素的属性我知道getElementsByClassName返回元素的对象,这可能就是我得到错误的原因:document.getElementsByClassName(…).getElementById不是一个函数 但我不太喜欢JS,所以我可能错了 price = document.getElementsByClassName('form-basket

您好,我正在将一个脚本从jQuery重写为纯JS,我不知道还能怎么写。我想获取id为'przecenajs'的类'form basket'中元素的属性我知道getElementsByClassName返回元素的对象,这可能就是我得到错误的原因:document.getElementsByClassName(…).getElementById不是一个函数 但我不太喜欢JS,所以我可能错了

 price =   document.getElementsByClassName('form-basket').getElementById("przecenajs").getAttribute("data-procent");

这是因为
getElementsByClassName
返回一个
HTMLCollection
对象

您可能想使用
querySelector
函数:

document.querySelector('.form-basket #przecenajs')
console.log(document.querySelector('.formbasket#przecenajs').getAttribute(“数据处理”)

这是因为
getElementsByClassName
返回一个
HTMLCollection
对象

您可能想使用
querySelector
函数:

document.querySelector('.form-basket #przecenajs')
console.log(document.querySelector('.formbasket#przecenajs').getAttribute(“数据处理”)

您不必首先选择表单篮。由于id只能在文档中使用一次,因此您可以简单地按id进行选择,如下所示:

document.getElementById("przecenajs").getAttribute("data-procent");

您不必首先选择表单篮。由于id只能在文档中使用一次,因此您可以简单地按id进行选择,如下所示:

document.getElementById("przecenajs").getAttribute("data-procent");

我假设您正在搜索不止一个标记,因为如果您不愿意,您可以只使用
document.getElementById()
,因此我认为这些行可以完成您想要的任务,您必须手动创建包含所有属性的列表,以复制jquery行为:

var priceList = [];
document.querySelectorAll(".form-basket #przecenajs").forEach( (element) =>{
    priceList.push(element.getAttribute("data-procent"));
});

我假设您正在搜索不止一个标记,因为如果您不愿意,您可以只使用
document.getElementById()
,因此我认为这些行可以完成您想要的任务,您必须手动创建包含所有属性的列表,以复制jquery行为:

var priceList = [];
document.querySelectorAll(".form-basket #przecenajs").forEach( (element) =>{
    priceList.push(element.getAttribute("data-procent"));
});


“这可能就是我得到错误的原因”它是。缺少最重要的部分:错误:-)也许将一行拆分为多个不同的函数调用将帮助您调试并获得所需的结果。document.querySelector应该是您的朋友忘记类名,ID应该是唯一的,这样您就可以使用
document.getElementById(“przecenajs”).getAttribute(“data procent”)
“这可能就是我出错的原因”它缺少最重要的部分:错误:-)可能将一行拆分为多个不同的函数调用将帮助您调试并获得所需的内容。document.querySelector应该是您的朋友忘记类名,ID应该是唯一的,这样您就可以使用
document.getElementById(“przecenajs”).getAttribute了(“data procent”)
。它工作正常,直到我将getAttribute放在末尾,然后得到nulldocument.querySelector(…)是null@WinithePooh这是因为
querySelector
没有找到元素。我的id比正好在.form中更深-basket@WinithePooh分享你的HTML…:-)它工作得很好,直到我把getAttribute放在末尾,然后我得到nulldocument.querySelector(…)是null@WinithePooh这是因为
querySelector
没有找到元素。我的id比正好在.form中更深-basket@WinithePooh共享您的HTML…:-)虽然这是事实,但它不能解释OP在包含不需要的位时出错的原因。虽然这是事实,但它不能解释OP出错的原因包含不需要的位时出错。