新闻中心
如何在点击的Div中获取正确的ID

本文旨在解决动态生成的HTML元素中,点击事件发生时,如何准确获取与该元素关联的ID值的问题。通过事件委托和DOM遍历,我们将提供一种可靠的方法,确保在复杂的动态环境中,始终能获取到正确的ID,避免因选择器错误而导致的数据获取错误。
在动态生成的HTML结构中,经常会遇到点击事件需要获取特定ID的情况。如果直接使用jQuery选择器,可能会因为DOM结构的变化或选择器范围过大而导致获取到错误的ID。本文将介绍如何使用事件委托和DOM遍历,准确地获取与点击元素相关的ID。
问题分析
原始代码的问题在于,点击.histor-uten元素时,$("input[name='id_utt']").val() 总是返回第一个匹配的input元素的value,而不是当前点击的.histor-uten元素内部的input元素的value。这是因为选择器$("input[name='id_utt']")会选择页面上所有name属性为id_utt的input元素,并返回第一个匹配项的值。
解决方案:事件委托与DOM遍历
解决此问题的关键在于:
顶级域名交易系统
1.后台管理登陆直接在网站地址后输入后台路径,默认为 /admin,进入后台管理登陆页面,输入管理员用户名和密码,默认为 中文 admin ,登陆后台。2.后台管理a.注销管理登陆 (离开后台管理时,请点击这里正常退出,确保系统安全)b.查看使用帮助 (如果你在使用系统时,有不清楚的,可以到这里来查看)c.管理员管理 (这里可以添加,修改,删除系统管理员,暂不支持,分权限管理操作)d.分类管理 (
0
查看详情
- 事件委托: 将事件监听器绑定到父元素,利用事件冒泡机制,监听子元素的点击事件。
- DOM遍历: 在事件处理函数中,通过DOM遍历,找到当前点击元素内部的input元素,并获取其value。
以下是修改后的代码:
var data = [
{ codigo: "1", Utente: "Teste" },
{ codigo: "2", Utente: "Teste1" },
{ codigo: "3", Utente: "Teste2" },
{ codigo: "4", Utente: "Teste3" },
{ codigo: "5", Utente: "Teste4" },
{ codigo: "6", Utente: "Teste5" },
];
$(document).on('click', '.dad-inf', function() {
var linha = ``;
for (var i = 0; i < data.length; i++) {
codigo = data[i].codigo;
Utente = data[i].Utente;
linha += `<div class="col-md-6 col-xl-3">
<a href="#" class="dropdown-item btn btn-warning histor-uten">
<div class="profile-photo-div" id="profile-photo-div">
<div class="profile-buttons-div">
<div class="profile-img-input" id="profile-img-input">
<label class="butttton" id="change-photo-label" for="change-photo">#${Utente}</label>
<input type="hidden" name="id_utt" value="${codigo}">
</div>
</div>
</div>
</a>
</div>`;
}
$(".tesssste").html(linha);
});
$(document).on('click', '.histor-uten', function(e) {
let parent = $(this);
// First make sure it selects the element with the histor-uten class
if (!parent.hasClass('histor-uten')) {
parent = $(this).closest('.histor-uten');
}
// Get the child input from the parent instead of the first one in the document
var id_utt = $(parent.find("input[name='id_utt']")).val();
console.log(id_utt);
});
$(function() {
$(".btn-show").click(function(e) {
e.preventDefault();
el = $(this).data('element');
$(el).show();
$("section > div").not(el).hide();
});
});代码解释:
- $(document).on('click', '.histor-uten', function(e) { ... });: 使用事件委托,将点击事件监听器绑定到document,监听所有.histor-uten元素的点击事件。 这样做的好处是,即使.histor-uten元素是动态生成的,也能正确绑定事件。
-
let parent = $(this);: 获取当前点击的.histor-uten
元素。$(this)指向触发事件的DOM元素。 - if (!parent.hasClass('histor-uten')) { parent = $(this).closest('.histor-uten'); }: 确保 parent 变量指向 .histor-uten 元素。 如果点击事件发生在 .histor-uten 元素的子元素上,则使用 .closest() 方法找到最近的父元素 .histor-uten。
- var id_utt = $(parent.find("input[name='id_utt']")).val();: 使用parent.find("input[name='id_utt']")在当前点击的.histor-uten元素内部查找name属性为id_utt的input元素,并获取其value。
完整示例
<!DOCTYPE html>
<html>
<head>
<title>Get ID Example</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.min.js"></script>
</head>
<body>
<a href="s105" data-element="#minhaDiv105" class="btn-show dad-inf">Utentes</a>
<section id="s105">
<div id="minhaDiv105">
<div class="row tesssste">
</div>
</div>
</section>
<script>
var data = [
{ codigo: "1", Utente: "Teste" },
{ codigo: "2", Utente: "Teste1" },
{ codigo: "3", Utente: "Teste2" },
{ codigo: "4", Utente: "Teste3" },
{ codigo: "5", Utente: "Teste4" },
{ codigo: "6", Utente: "Teste5" },
];
$(document).on('click', '.dad-inf', function() {
var linha = ``;
for (var i = 0; i < data.length; i++) {
codigo = data[i].codigo;
Utente = data[i].Utente;
linha += `<div class="col-md-6 col-xl-3">
<a href="#" class="dropdown-item btn btn-warning histor-uten">
<div class="profile-photo-div" id="profile-photo-div">
<div class="profile-buttons-div">
<div class="profile-img-input" id="profile-img-input">
<label class="butttton" id="change-photo-label" for="change-photo">#${Utente}</label>
<input type="hidden" name="id_utt" value="${codigo}">
</div>
</div>
</div>
</a>
</div>`;
}
$(".tesssste").html(linha);
});
$(document).on('click', '.histor-uten', function(e) {
let parent = $(this);
// First make sure it selects the element with the histor-uten class
if (!parent.hasClass('histor-uten')) {
parent = $(this).closest('.histor-uten');
}
// Get the child input from the parent instead of the first one in the document
var id_utt = $(parent.find("input[name='id_utt']")).val();
console.log(id_utt);
});
$(function() {
$(".btn-show").click(function(e) {
e.preventDefault();
el = $(this).data('element');
$(el).show();
$("section > div").not(el).hide();
});
});
</script>
</body>
</html>注意事项
- 确保事件委托的父元素存在于DOM中。
- DOM遍历时,选择器要足够精确,避免选择到错误的元素。
- 如果HTML结构发生变化,需要相应地调整DOM遍历的代码。
总结
通过使用事件委托和DOM遍历,可以准确地获取动态生成的HTML元素中与点击事件相关的ID。这种方法避免了全局选择器可能导致的问题,提高了代码的健壮性和可维护性。在复杂的Web应用中,掌握这些技巧至关重要。
以上就是如何在点击的Div中获取正确的ID的详细内容,更多请关注其它相关文章!
# 绑定
# 网络推广营销价值
# 德庆企业网站seo优化
# 河南生产企业推广营销
# 云南seo公司排名
# 放心的网站推广哪家好
# 阿里组合营销推广方案有哪些
# 密山专业网站建设
# 沈阳家装网站建设
# 移动营销的推广方式有哪些
# 福州平台推广营销价格
# 并获
# 如何在
# 表单
# 鼠标
# 第一个
# css
# 顶级域名
# 后台管理
# 选择器
# 遍历
# html元
# 点击事件
# cdn
# 事件冒泡
# npm
# go
# ajax
# bootstrap
# js
# html
# jquery
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性
J*aScript中如何高效提取对象指定属性
快手官方唯一登录入口 谨防山寨钓鱼网站
steam官方网页快速访问 steam账号注册全流程
qq音乐在线播放入口_qq音乐电脑版登录链接
三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
印象笔记如何设离线包出差查阅_印象笔记设离线包出差查阅【离线阅读】
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
汽水音乐在线版入口_汽水音乐网页播放手册
CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色
UC浏览器网页版登录入口官网 电脑版网址入口
excel如何生成目录 excel一键生成工作表目录超链接
QQ官网正版登录链接 QQ在线登录入口最新
解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常
将HTML动态表格多行数据保存到Google Sheet的教程
c++20的std::jthread是什么_c++可中断线程与RAII式管理
CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题
必由学登录入口 必由学官方网站在线访问链接
深入理解与实现最大堆的Heapify过程:常见错误与修正
qq游戏大厅官方下载_qq游戏免费下载安装入口
夸克AO3官网入口_AO3镜像网站2025推荐
构建轻量级网站内部消息系统:Formspree 集成指南
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏
晋江读书网页版在线登录 晋江读书电脑版官网
PHP表单数据传递:如何通过隐藏输入字段获取动态ID
LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比
使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战
动漫岛观看全网网 动漫岛在线正版动漫入口
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
AO3最新可访问网址 Archive of Our Own官方在线入口
如何在CSS中使用浮动制作导航栏_float实现水平菜单
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
Lar*el 8 多关键词数据库搜索优化实践
Python getattr() 异常处理深度解析:避免程序意外退出
PHP高效扁平化嵌套数组:使用array_merge与数组解包操作符
mcjs网页版在线存档 mcjs云存档登录入口
2026春节假期票务安排_2026春节放假购票指南
微信网页版官方入口教程 微信网页版网页版快速登录步骤
mysql如何设置表访问权限_mysql表访问权限配置
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
Composer如何解决json扩展缺失的错误
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
如何使用Go和Martini动态服务解码后的图片
Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】


2025-11-17
浏览次数:次
返回列表
元素。$(this)指向触发事件的DOM元素。