Javascript 获取更多选项的GetElementById备选方案

Javascript 获取更多选项的GetElementById备选方案,javascript,html,Javascript,Html,好的,我是JavaScript新手,所以我真的需要这方面的帮助。 我有一个脚本,看起来像这样: function Change(){ var image = document.getElementById('id-img'); image.src = "somenotimportantlink" + document.getElementById('id-a1').title; var link = document.getElementById('id-a2');

好的,我是JavaScript新手,所以我真的需要这方面的帮助。 我有一个脚本,看起来像这样:

function Change(){
    var image = document.getElementById('id-img');
    image.src = "somenotimportantlink" + document.getElementById('id-a1').title;

    var link = document.getElementById('id-a2');
    link.href="somenotimportantlink"+(document.getElementById('id-a1').title)+"/index.html";    
}    

我的问题是有多个标签想要在上面使用这个函数,但是我只能在一个标签上使用id=id-a1,所以我需要一个getElementById的替代品,一个允许我使用多个标签的替代品。

js中有多种方法来获取元素,但是如果你想使用css选择器,那么你可以使用document.querySelectorAll.myclass


编辑:对不起,我搞错了。。。使用querySelectorAll

如果确实需要按id选择元素,可以使用querySelectorAll

document.querySelectorAll[id*='id-a']将匹配id包含'id-a'的所有元素 document.querySelectorAll[id^='id-a']匹配id以“id-a”开头的所有元素。

但是,我会考虑使用一个类而不是ID:

document.querySelectorAll'.someClass' 确保使用querySelectorAll而不是querySelector来获取所有匹配的元素


大多数人使用jQuery来实现这一点,但您也可以用JavaScript实现。问题是,它只适用于现代浏览器

JavaScript方法 您需要使用查询选择器获取所有对象的节点列表,并迭代该节点列表的每一项

function myStuff() {
  var nodeList = document.querySelectorAll('.a');
  for (var i = 0, length = nodeList.length; i < length; i++) {
     nodeList[i].href = "somenotimportantlink"+(i.title)+"/index.html";
  }
}
或者,如果要选择所有标记:


我试过了,但它仍然总是只接受具有该类名的第一个元素,而忽略其他元素suse.querySelectorAll.myclass;因为Collection正在编辑我的答案。。。现在可以阅读你的Q;那么,为什么你被限制在特定的ID上呢?因为你觉得你必须在ID中使用ID这个词,如果它是一个a标签,那么使用a这个词……了解你是如何调用更改的会很有帮助。我怀疑您可以从调用点传入源元素,这可能比尝试在DOM中搜索正确的元素更简单。相关的HTML是什么,您希望检索哪些元素?首先,我很抱歉,我键入时出错,问题实际上是id-a1,而不是id-a2。代码如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
$('.a')
$('a')