如何通过唯一元素名称使用jQuery获取HTML标签名?
解决方案
没问题,这个需求很容易实现,利用jQuery的属性选择器就能搞定,而且完全不用预先指定标签名,具体实现方式如下:
- 首先,借助属性选择器通过唯一的name值定位目标元素:因为你已经确保name属性全局唯一,所以
[name="你的目标name值"]这个选择器会精准匹配到对应的input/select/textarea元素。 - 然后,通过
prop('tagName')获取该元素的标签名,再转成小写就能得到你需要的标签类型(input/select/textarea)。
示例代码
// 定义要查找的name值 const targetName = 'sample'; // 通过name属性定位元素 const $targetElement = $(`[name="${targetName}"]`); // 获取标签名并转为小写 const tagName = $targetElement.prop('tagName').toLowerCase(); // 输出结果,比如针对你给出的<input>元素,这里会打印"input" console.log(tagName);
适配不同元素的验证
如果目标元素是<select name="gender"></select>,执行上述代码后tagName的值会是"select";如果是<textarea name="description"></textarea>,则会得到"textarea",完全符合你的需求。
需要注意的是,因为你已经保证了name属性的唯一性,所以不用担心选择器匹配到多个元素的情况,这个方法会直接定位到你想要的那个元素。
内容的提问来源于stack exchange,提问作者Karthik Rajan
相关产品推荐
相关产品推荐

