js获取自定义属性的两种方法

本文介绍了在JavaScript中获取HTML元素自定义属性的四种方法,包括点符号、方括号、getAttribute()及data-*属性。重点讲解了data-*属性的小驼峰命名规则,并指出直接在JS中添加自定义属性的局限性。

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

js获取自定义属性的两种方法

四种获取属性的方法

首先获取一个元素:var elem = document.getElementById(‘elem’);

 <div id="elem" class="box" title="hello" ancheng="Ancheng" data-user="小明" data-user-name="小小明"></div>

1、点(获取不到自定义属性):

2、[] 也可以获取属性 ,有利于进行传参操作。

elem.style['background'] = 'yellow'  

3、getAttribute():早期获取自定义属性的方法。

var foo = elem.getAttribute('ancheng');//Ancheng  

同时也能进行设置:

elem.setAttribute('ancheng','安成');  

4、data-*(现在经常使用的获取自定义属性的方法)

console.log(elem.dataset.user);  

重点: *号的名字若果有下划线,就转成小驼峰。

console.log(  elem.dataset.userName)  

注意: 可以在js中直接添加自定义属性,但是只能在js中用,因为你还没有加入html中。

 elem.myColor = 'red';
 console.log( elem.myColor );
<think>好的,我需要回答用户关于如何用JavaScript获取元素的自定义属性model-id的问题。首先,用户提到了“model-id”,这是一个自定义属性,通常以data-开头,但用户这里用的是model-id,可能不符合标准命名。不过根据HTML5规范,自定义属性应该使用data-前缀,所以用户可能需要调整属性名,或者使用其他方法获取。 接下来,用户提供的引用资料里提到两种方法:getAttribute()和dataset。引用1中的例子是data-action和data-id,所以用户可能需要知道如果属性名是model-id,应该如何处理。不过,如果用户坚持使用model-id而不是data-model-id,可能需要使用getAttribute("model-id"),因为dataset只支持data-前缀的属性。 我应该先说明标准做法是使用data-前缀,然后给出两种方法。如果用户确实无法修改属性名,就解释如何用getAttribute获取非标准属性。同时,要提醒用户遵循HTML5规范,使用data-*格式以便dataset的支持。 然后,需要给出具体的代码示例,比如通过getAttribute("model-id"),或者如果属性是data-model-id,可以用dataset.modelId。同时,注意属性名在dataset中的转换规则,比如连字符转驼峰。 最后,生成相关问题,比如如何设置自定义属性,或者如何处理非标准属性等。</think>在JavaScript中获取自定义属性`model-id`可以通过以下两种方式实现: ### 1. 使用`getAttribute()`方法 如果属性名是**非标准**的(未使用`data-`前缀),可以通过`getAttribute()`直接获取: ```javascript const element = document.querySelector('#targetElement'); const modelId = element.getAttribute('model-id'); console.log(modelId); // 输出属性值 ``` ### 2. 标准`data-*`属性的推荐做法 根据HTML5规范,建议将自定义属性命名为`data-*`格式(如`data-model-id`),此时可通过更简洁的`dataset`属性获取: ```html <button id="btn" data-model-id="2023">按钮</button> ``` ```javascript const btn = document.querySelector('#btn'); // 通过dataset获取(注意驼峰命名转换) console.log(btn.dataset.modelId); // 输出 "2023" ``` ### 关键区别说明 | 方法 | 适用场景 | 命名规则 | |--------------------|---------------------------|---------------------| | `getAttribute()` | 任意属性名(包括非标准) | 原样匹配 | | `dataset` | 标准`data-*`属性 | 连字符转驼峰[^1] | ### 建议 推荐遵循HTML5的`data-*`命名规范,既能通过`dataset`安全访问,也避免与其他属性冲突。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值