使用GetElementById传递多个值(并在某个字符后分割)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用GetElementById传递多个值(并在某个字符后分割)相关的知识,希望对你有一定的参考价值。
我几乎没有javascript的经验,但我知道getElementID只携带一个值,所以我怎么能传递2个值?我可以像下面一样使用它两次,或者我会更好地使用另一个GetElementBy / GetElementsBy方法吗?
<script type="text/javascript">
$(document).ready(function () {
hash();
function hash() {
var hashParams = window.location.hash.substr(1).split('&');
for (var i = 0; i < hashParams.length; i++) {
var p = hashParams[i].split('=');
document.getElementById("<%=start.ClientID%>").value = decodeURIComponent(p[1]);
document.getElementById("<%=end.ClientID%>").value = decodeURIComponent(p[1]);;
}
}
});
</script>
编辑所以我决定使用循环两次它的工作,但我传递的值包含我需要删除的文本。有没有办法可以在某个角色之后切断分裂?这是我的新代码
<script type="text/javascript">
$(document).ready(function () {
hash();
function hash() {
var hashParams = window.location.hash.substr(1).split('#');
for (var i = 0; i < hashParams.length; i++) {
var p = hashParams[i].split('=');
document.getElementById("<%=start.ClientID%>").value = decodeURIComponent(p[1]);
}
var hashParams = window.location.hash.substr(1).split('&');
for (var i = 0; i < hashParams.length; i++) {
var p = hashParams[i].split('=');
document.getElementById("<%=end.ClientID%>").value = decodeURIComponent(p[1]);;
}
}
});
</script>
以下是从上一页转发时显示在搜索栏中的文本。 localhost:56363 / Bookings.aspx #start = 27/02/201 12:30&end = 27/02/2018 17:30
开始和结束输入框填充值,但开始输入框(27/02/2018 12:30和结束)包含我想要剪切的字符(和结束)。有没有办法在某个角色后停止分裂?
使用它两次是完全可以接受的。并且,如果它们是分开的东西,那么它是有道理的。
虽然你也可以使用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
,但没有Array的函数,所以你需要Array.prototype.forEach.call()
来循环它们。
document.querySelectorAll()
接受一个类似于你给CSS的字符串,NodeList具有与之匹配的所有元素。
而且,仅供参考,有一个等效的document.querySelector()
获得单个元素,因此您可以将其用于ID:
document.querySelector("#<%=start.ClientID%>")
请注意#
就像你在开始时对CSS一样。
ID是一个唯一的标识符,与类不同,因此在DOM中只应有一个具有相同名称的标识符。
getElementById旨在查找具有指定ID的DOM中的一个元素。
如果你需要获得多个元素,那么是多次调用getElementById。
请参阅此处获取有关getElementById方法的文档,该方法显示它只接受单个ID参数:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById
以上是关于使用GetElementById传递多个值(并在某个字符后分割)的主要内容,如果未能解决你的问题,请参考以下文章