从“Error 1935”到完美运行:给Erdas9.2配齐VC++运行库的保姆级指南(附资源包)
2026/6/6 11:18:14
如:src、href、id、class、disabled.
这类属性是 HTML 元素的固有属性,可通过元素对象直接访问或使用setAttribute/getAttribute方法操作.
适用于大部分常用标准属性,如src、href、id、value、disabled等.
// HTML: <img id="img" src="old.jpg" alt="旧图片">constimg=document.getElementById('img');// 修改 src 属性img.src='new.jpg';// 修改 alt 属性img.alt='新图片';// HTML: <a id="link" href="https://old.com">旧链接</a>constlink=document.getElementById('link');link.href='https://new.com';link.title='新链接的标题';// 鼠标悬浮提示// 表单元素属性: 禁用输入框// HTML: <input type="text" id="input" disabled="false">constinput=document.getElementById('input');input.disabled=true;// 禁用(布尔值,直接赋值)input.readOnly=true;// 设置为只读适用于所有 HTML 属性(包括部分直接访问不生效的属性),参数为属性名的字符串形式.
setAttribute(属性名, 属性值): 设置属性值getAttribute(属性名): 获取属性值removeAttribute(属性名): 移除属性// HTML: <div id="box" class="old-class">constbox=document.getElementById('box');// 设置 class 属性(也可直接用 box.className)box.setAttribute('class','new-class');// 获取 class 属性console.log(box.getAttribute('class'));// "new-class"// 设置>.setAttribute('data-index','2');// 移除 disabled 属性input.removeAttribute('disabled');样式属性分为行内样式和类样式,推荐优先使用类样式(便于维护和复用).
直接操作元素的行内样式,优先级高于外部样式表.
// HTML: <div id="box" style="color: red;">测试</div>constbox=document.getElementById('box');// 修改单个行内样式(注意: CSS 属性名转为驼峰命名,如 background-color → backgroundColor)box.style.color='blue';box.style.fontSize='16px';box.style.backgroundColor='#f5f5f5';// 批量设置行内样式(通过 cssText)box.style.cssText='color: green; font-size: 18px; margin-top: 10px;';通过操作 CSS 类来修改样式,更符合结构与样式分离的原则.classList提供了以下方法:
add(className): 添加类remove(className): 移除类toggle(className): 切换类(存在则移除,不存在则添加)contains(className): 判断是否包含类(返回布尔值)/* CSS 样式 */.active{color:red;font-weight:bold;}.hide{display:none;}// HTML: <div id="box" class="old-class">测试</div>constbox=document.getElementById('box');// 添加类box.classList.add('active');// 结果: class="old-class active"// 移除类box.classList.remove('old-class');// 结果: class="active"// 切换类(点击时常用)box.classList.toggle('hide');// 存在 hide 则移除,否则添加// 判断是否包含类if(box.classList.contains('active')){console.log('包含 active 类');}// 一次性添加/移除多个类box.classList.add('class1','class2');box.classList.remove('class1','class2');data-*)HTML5 支持通过data-*定义自定义属性,可通过元素的dataset属性便捷操作(无需写data-前缀).
// HTML: <div id="box">constbox=document.getElementById('box');// 获取自定义属性(dataset 是对象,属性名转为驼峰:>.log(box.dataset.id);// "10"console.log(box.dataset.userName);// "张三"// 修改自定义属性box.dataset.id=20;box.dataset.userName='李四';box.dataset.age=25;// 新增自定义属性>// 移除自定义属性(直接 delete)deletebox.dataset.age;class属性的特殊处理除了setAttribute('class', ...)和classList,也可通过className直接赋值(会覆盖原有类):
box.className='new-class1 new-class2';// 覆盖所有类,多个类用空格分隔checked属性(复选框/单选框)// HTML: <input type="checkbox" id="checkbox" checked>constcheckbox=document.getElementById('checkbox');checkbox.checked=false;// 取消选中selected属性(下拉选项)// HTML:// <select id="city">// <option value="beijing">北京</option>// <option value="shanghai" selected>上海</option>// </select>constoption=document.querySelector('#city option[value="beijing"]');option.selected=true;// 选中北京attr()和prop()的选择原则
checked、disabled、selected),必须用prop(),因为attr()获取的是标签上的初始值,而prop()获取的是元素的实时状态.attr('checked')仍返回checked(初始值),而prop('checked')返回true/false(实时状态).样式属性的命名规范
background-color)需转为驼峰命名(backgroundColor);自定义属性的最佳实践
data-*自定义属性(HTML5 标准),通过dataset或data()操作,避免直接添加非标准属性.元素存在性检查
constbox=document.getElementById('box');if(box){box.dataset.id=100;}只读属性的限制
<input type="file">的value、window.location的href部分场景),无法通过 JavaScript 修改.classList操作类样式,用dataset操作自定义属性;