Javascript 使用GetElementById传递多个值(&;在某个字符后拆分)

Javascript 使用GetElementById传递多个值(&;在某个字符后拆分),javascript,asp.net,split,webforms,getelementbyid,Javascript,Asp.net,Split,Webforms,Getelementbyid,我对JavaScript几乎没有经验,但我知道getElementID只携带一个值,所以我怎么能传递两个值呢? 我可以像下面那样使用它两次吗?还是使用另一个GetElementBy/GetElementsBy方法更好 $(文档).ready(函数(){ hash(); 函数hash(){ var hashParams=window.location.hash.substr(1).split('&'); for(var i=0;i

我对JavaScript几乎没有经验,但我知道getElementID只携带一个值,所以我怎么能传递两个值呢? 我可以像下面那样使用它两次吗?还是使用另一个GetElementBy/GetElementsBy方法更好


$(文档).ready(函数(){
hash();
函数hash(){
var hashParams=window.location.hash.substr(1).split('&');
for(var i=0;i
ID是一个唯一的标识符,与类不同,因此在DOM中应该只有一个具有相同名称的标识符

getElementById用于查找DOM中具有指定ID的一个元素

如果需要获取多个元素,则可以多次调用getElementById


有关getElementById方法的文档,请参见此处,该方法显示它只接受一个ID参数:

使用它两次是完全可以接受的。而且,如果它们是独立的东西,那么这是有意义的

虽然您也可以使用
getElementsByTagName()
getElementsByName()
getElementsByClassName()
,但通常使用
document.querySelectorAll()
是更现代的选择

如果他们有一些共同点(比如说一个类),你可以这样使用它:

const nodeList = document.querySelectorAll('.classToGet');
Array.prototype.forEach.call(nodeList, element => element.value = decodeURIComponent(p[1]));
document.querySelectorAll()
(以及
getElementsBy
函数)返回一个
NodeList
,它有点像
数组,但没有数组的函数,因此需要
Array.prototype.forEach.call()
来循环它们

document.querySelectorAll()
接受一个字符串,就像您给CSS的字符串一样,节点列表中有与之匹配的所有元素

仅供参考,这里有一个等价的
document.querySelector()
,它只获取一个元素,因此您可以将它用于ID:

document.querySelector("#<%=start.ClientID%>")
document.querySelector(#)

注意
#
就像您在开始时对CSS所做的那样。

getElementById将需要在每次您希望通过Id从DOM中获取元素时被调用。从DOM中调用多个元素的方法可能比通过Id更有效。例如,如果需要循环使用相同名称的一组元素,可以使用getElementsByName。