如何获取elementsByClassName然后在getElementById中

时间:2018-02-15 20:07:56

标签: javascript html

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

quiz(5):
  is 5 > 1? yes
    quiz(2):
      is 2 > 1? yes
        quiz(1):
          is 1 > 1? no
          print *
        quiz(1):
          is 1 > 1? no
          print *
      print * 
    quiz(2):
      is 2 > 1? yes
        quiz(1):
          is 1 > 1? no
          print *
        quiz(1):
          is 1 > 1? no
          print *
      print * 
  print * 

3 个答案:

答案 0 :(得分:2)

因为getElementsByClassName会返回HTMLCollection个对象。

您可能想要使用querySelector功能:

document.querySelector('.form-basket #przecenajs')

console.log(document.querySelector('.form-basket #przecenajs').getAttribute("data-procent"));
<div class='form-basket'>
  <div id='przecenajs' data-procent="Hello!">
  </div>
</div>

document.getElementById('przecenajs')

console.log(document.getElementById('przecenajs').getAttribute("data-procent"));
<div class='form-basket'>
  <div id='przecenajs' data-procent="Hello!">
  </div>
</div>

资源

答案 1 :(得分:1)

您不必先选择换页。由于ID只能在文档中使用一次,因此您可以简单地按ID进行选择:

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

答案 2 :(得分:0)

我假设您正在搜索的标签不止一个,因为如果您不能使用document.getElementById(),那么我认为这些线路可以完成您想要的工作,您必须手动创建列表具有复制jquery行为的所有属性:

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