JavaScript —— document中id属性不唯一时,id选择器如何工作


测试代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>document中存在相同id</title>
<style>
	#demo{
	 color:red;
	}
</style>
</head>
<body>
<p id="demo">单击按钮来改变这一段中的文本。</p>
<div id="demo">单击按钮来改变这一段中的文本。</div>
<p id="demo">单击按钮来改变这一段中的文本。</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
	document.getElementById("demo").innerHTML=document.getElementById("demo");
	//document.querySelector("#demo").innerHTML=document.querySelector("#demo");
	//document.querySelector("#demo").innerHTML=document.querySelectorAll("#demo");
};
</script>
</body>
</html>

运行结果

在这里插入图片描述


定义

id是元素的属性,大小写敏感的字符串,在整个document中应该是唯一的。

ID选择器

ID选择器,包括CSS选择器JS选择器,当ID不唯一时,通过代码测试和文档,可以得出如下结论:

  • 对于CSS选择器,ID选择器对应的所有元素都会受到影响;
  • 对于JS选择器,document.querySelector()document.getElementById()都只会返回第一个查找到的Element,如果没有则返回null。如果你想要得到所有的相同id属性的Element可以使用document.querySelectorAll()
### 如何在 JSP 中使用 ID 选择器获取页面数据 在 Java Server Pages (JSP) 技术中,通常会直接使用类似于前端开发中的 ID 选择器来操作 DOM 元素。相反,在服务器端渲染 HTML 的过程中,可以通过设置特定的属性或参数传递给客户端脚本(如 JavaScript),从而实现对具有指定 ID 的元素的操作。 然而,为了响应用户的交互需求并从带有唯一标识符(ID)的HTML标签内读取信息,可以在JSP文件里嵌入JavaScript代码片段,利用`document.getElementById()`方法访问这些DOM节点的数据[^1]。 下面是一个简单的例子展示如何结合JSP 和 JavaScript 来完成这一目标: ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function getDataById(id){ var element = document.getElementById(id); if(element != null){ alert('The content of the element with id '+id+' is: ' +element.innerHTML); }else{ alert('Element not found'); } } </script> </head> <body> <!-- 假设这是由JSP生成的内容 --> <div id="exampleDiv">This is an example div.</div> <button onclick="getDataById('exampleDiv')">Get Div Content</button> </body> </html> ``` 在这个实例中,当点击按钮时会触发 `onClick`事件处理器调用名为`getDataById`函数,并传入要查询的目标元素ID作为参数;该函数内部则运用了标准文档对象模型(DOM) API——即`getElementById`—去定位相应组件并弹窗显示其文本内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值