js使用this获取a标签id值

本文探讨了JavaScript中使用a标签时this关键字的行为差异,特别是在href属性与事件监听器中this指向的不同,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://www.sufeinet.com/thread-2222-1-1.html    苏飞论坛

<html xmlns="http://www.w3.org/1999/xhtml">
<head >
    <title></title>
 
</head>
<body>
     
  <script type="text/js">
  function getpid(obj) {
  alert(obj.id);
  }
    </script>
    <a href="#" id="123">单击测试</a>
</body>
</html>

this只有在事件里才生效,在href里是不生效的,获取的是当前页面,而不是当前单击的控件


问个基本问题!
<a href="javascript:search('hj_total',this.id);" id="hjt" plain="false"></a>
这个 this.id 在js里面取不到数据
这样写应该没有问题啊

function search(strObj, strID) {
            var idname = '#' + strID;
            if ($(idname).text() == 0) {
                return false;
            }

            $('#win').window('refresh', 'VehicleDistributionDetail.aspx?station=' + strObj.toString() + '&model=' + $('#selModels').combobox('getValue'));

        }
无法浏览网页()  10:52:09
search(strObj, strID) 第二个参数 strID 值一直未undefined
站长苏飞<sufei.1013@163.com>  10:54:23
你直接写HJk不就行了
hjt
无法浏览网页()  10:55:04
我好多a 标签是调用这个js的
无法浏览网页(1250623166)  11:14:31
我找到问题了~!a标签不能用href 里面的js 参数 this
必须是事件 例如onclick 参数 this才能取到


### 使用 JavaScript 和 Web NFC API 获取 NFC 标签数据与唯一标识符 要通过 JavaScript 和 Web NFC API 来获取 NFC 标签的数据及其唯一标识符 (UID),需要遵循以下说明: #### 启用 Web NFC 功能 在现代浏览器中,Web NFC 是一项实验性功能。为了启用它,开发者通常需要手动激活该功能。例如,在 Chrome 浏览器中可以通过 `chrome://flags/#enable-experimental-web-platform-features` 设置来开启支持。 一旦启用了此功能,则可以利用 Web NFC API 进行交互。需要注意的是,NFC 的权限声明应在应用清单文件或者 HTML 中指定[^1]。 ```html <uses-permission android:name="android.permission.NFC" /> ``` 上述代码片段适用于 Android 平台上的应用程序开发环境配置;而对于基于网页的应用场景来说,实际操作会有所不同。 #### 请求用户授权并监听 NFC 事件 当准备就绪后,可通过调用 `navigator.nfc` 对象的方法实现具体的功能需求。下面展示了一个简单的例子,演示如何读取 NFC 标签的内容以及其 UID : ```javascript if ('NDEFReader' in window) { const ndef = new NDEFReader(); async function readNFC() { try { await ndef.scan(); // 开始扫描附近的NFC设备 console.log("NFC reader is ready."); ndef.onreading = event => { let data = event.message.records.map(r => r.data.asString()); let uid = Array.from(new Uint8Array(event.serialNumber)).map(b => b.toString(16).padStart(2, '0')).join(''); console.log(`Tag ID: ${uid}`); console.log(`Data on tag:`, ...data); }; ndef.onerror = error => { console.error("Error reading NFC:", error); } } catch(error){ console.error("Failed to start scanning", error); } } readNFC(); } else { alert("The Web NFC API is not supported by this browser."); } ``` 在此脚本里,我们创建了一个新的 `NDEFReader` 实例,并定义了两个回调函数分别处理成功接收到的消息 (`onreading`) 及错误情况下的响应 (`onerror`) 。其中,`event.message.records` 提供了标签上所存信息的具体记录列表,而 `event.serialNumber` 则包含了唯一的序列号即 UID ,这里将其转化为十六进制字符串形式以便于显示和后续使用。 另外得注意的一点是关于字符编码方面的问题。如果涉及到多字节字符集比如 UTF-8 编码的文字存储到 NFC 载体当中去的时候,应该考虑到可能存在的不同表现形式所带来的影响。因此建议采用标准化的方式来表达这些特殊字符以保证一致性[^2]。 最后提醒一下安全性和隐私保护的重要性。由于生物特征认证手段越来越普及,所以在设计涉及个人敏感资料传输的服务时务必采取适当的安全措施防止未授权访问发生[^3]。 #### 数据库名称规范化注意事项 假如计划把从 NFC 设备获得的信息保存至某个数据库系统之中的话,请记得检查目标系统的命名规则要求。某些情况下,像 ArangoDB 那样的 NoSQL 解决方案可能会强制执行特定的 UTF-8 字符串格式化标准——也就是所谓的 **NFC 归一化** ——从而避免潜在的技术障碍或兼容性问题出现[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值