我几乎没有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&amp; end = 27/02/2018 17:30
开始和结束输入框填充值,但是开始输入框(27/02/2018 12:30和end)包含我想要剪切的字符(&amp; end)。 有没有办法在某个角色后停止分裂?
答案 0 :(得分:3)
使用它两次是完全可以接受的。并且,如果它们是分开的东西,那么它是有道理的。
虽然您也可以使用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
,但没有数组&# 39; s函数,所以你需要Array.prototype.forEach.call()
来循环它们。
document.querySelectorAll()
接受一个类似于你给CSS的字符串,NodeList具有与之匹配的所有元素。
而且仅供参考,有一个等价的document.querySelector()
可以获得单个元素,因此您可以将其用于ID:
document.querySelector("#<%=start.ClientID%>")
注意#
就像你在开始时对CSS一样。
答案 1 :(得分:0)
ID是一个唯一的标识符,与类不同,因此在DOM中只应有一个具有相同名称的标识符。
答案 2 :(得分:0)
getElementById旨在查找具有指定ID的DOM中的一个元素。
如果你需要获得多个元素,那么可以多次调用getElementById。
请参阅此处获取有关getElementById方法的文档,该方法显示它只接受一个ID参数:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById