小程序如何獲取子元素
小程序如何獲取子元素
1、使用setData方法更新數(shù)據(jù)
在小程序中,可以使用setData方法來更新Page實(shí)例中的數(shù)據(jù)。為了獲取子元素,需要通過組件的id
屬性或data-*
自定義屬性來定位子元素。例如:
Page({
data: {
list:[
{id: 0, name: 'apple'},
{id: 1, name: 'banana'},
{id: 2, name: 'orange'}
]
},
onItemClick(event) {
const id = event.currentTarget.dataset.id
// 通過id定位父級(jí)元素,在父級(jí)元素中查找子元素
const index = this.data.list.findIndex(item => item.id === id)
console.log(index)
}
})
2、使用this.selectComponent方法獲取組件實(shí)例
在小程序中,可以使用this.selectComponent
方法來獲取組件實(shí)例。為了獲取子元素,需要假設(shè)你的組件已經(jīng)編寫完畢,并且給某個(gè)需要獲取子元素的組件設(shè)置了
Component({
properties: {},
methods: {},
ready() {
// 獲取子元素
const child = this.selectComponent('.child')
console.log(child.data)
}
})
3、使用wx.createSelectorQuery方法獲取DOM節(jié)點(diǎn)信息
在小程序中,可以使用wx.createSelectorQuery
方法來獲取 DOM 節(jié)點(diǎn)信息。為了獲取子元素,需要將節(jié)點(diǎn)取到之后再進(jìn)行查找,例如:
Page({
onShow() {
// 獲取父級(jí)元素
const query = wx.createSelectorQuery()
query.select('.parent').boundingClientRect()
query.exec(res => {
const parentRect = res[0]
// 獲取所有子元素的信息
const childNodes = [...parent.childNodes]
childNodes.forEach((node, index) => {
const { top, left, width, height } = node.getBoundingClientRect()
console.log('child' + index + 'of parent: ', top, left, width, height)
})
})
}
})
4、總結(jié)
以上是三種獲取小程序子元素的方法。具體的實(shí)現(xiàn)方式根據(jù)需求來選擇,推薦使用setData方法和this.selectComponent方法,如果需要獲取DOM節(jié)點(diǎn),則使用wx.createSelectorQuery方法。
本文由肥貓科技提供
本文標(biāo)簽: