如何动态修改网页元素的属性?

本文讲述了作者在使用uniapp框架时遇到的一个问题,即通过JavaScript尝试动态修改网页元素的灰度值,起初使用`document.getElementById`方法在HBuilder内置浏览器中正常工作,但在实际手机上运行时出现错误。经过探索,作者找到了新的解决方案,通过在HTML中使用`@click`和`:style`结合数据绑定,成功实现了动态修改元素属性的目标,避免了跨平台兼容性问题。

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

最近遇到一个需求,需要动态修改网页某个元素的属性,具体来说就是灰度值。我用的是uniapp这个框架,一开始我使用百度搜“js 控制style里的数值大小”,然后找到下面这样的解决方案:

document.getElementById("resume").style.filter="grayscale(100%)"

但奇怪的是,这个方案在hbuilder的内置浏览器里运行的好好的,一旦运行在真实的手机上,就会报错,错误如下:

Cannot read property 'getElementById' of undefined

由于本人功力尚浅,不知道这到底是怎么一回事,问过度娘也没找到想要的答案。于是只能把上面的解决方案废弃,寻找其他的方案。

最后皇天不负有心人,还是被我找到了。代码如下:

<view id="diploma" class="f-header m-t" @click="showDiploma" :style="{filter: diplomaGray}">

...

diplomaGray: 'grayscale(100%)'

这样在js代码里只需要修改变量diplomaGray的值就能达到修改对应网页元素的属性的目的了。

(全文完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值