微信小程序为什么不支持dom
微信小程序为什么不支持DOM操作呢?这是因为微信小程序的UI层和service层运行在不同webview下面,他们通过postMessage通讯,即便你能操作dom也没任何意义。在最新版的微信开发者工具中,虽然可以操作window以及下面的document对象,但他们是独立的运行环境,能操作也没用的。
那么,在微信小程序中,如何实现类似DOM的操作呢?我们可以采用变量绑定的方式来实现。以下是一种常见的例子:
一、实现view的显示和影藏:在js中的data设置变量bottomHidden1:"block";然后在wxml中的view中设置
二、实现input中的placeholder在获取焦点时清空,失去焦点时显示:
- 1. 在js中,data中设置变量priceHodler:"请输入价格";
- 2. 我们可以设置两个function控制变量priceHodler的值(此处添加了一种的方法实现输入框中删除图标的显示和消失,所以在data中设置了变量clearImg):
- displayImg:function() var imgDisplay="block"; var holderDisplay=""; this.setData({ clearImg: imgDisplay, priceHodler: holderDisplay });
- hiddenImg:function() var imgHidden="none"; var holderHidden="请输入价格"; this.setData({ clearImg: imgHidden, priceHodler: holderHidden });
3. 在wxml中添加这个input:
这里我们还实现了输入框内容删除图标的显示和消失功能:
this.setData({
usdValue:null,
});
在上述示例中,我们通过变量绑定实现了微信小程序中的类似DOM的操作。这种操作方式不同于网页中的JavaScript概念,但它能满足小程序的开发需求。
The End