uniapp 根据html元素id 获取到当前的元素,比如 <div id='main'> <span></span> </div> 通过 id main 获取到 元素本身
时间: 2023-12-02 10:06:45 浏览: 50
在 uniapp 中,可以通过 `uni.createSelectorQuery()` 方法来根据元素 ID 获取到元素本身。该方法返回一个 `SelectorQuery` 对象,可以通过该对象的 `select(selector: string)` 方法来选取第一个匹配到的元素。
例如,可以通过以下代码选取 ID 为 `main` 的元素本身:
```javascript
uni.createSelectorQuery()
.select('#main')
.boundingClientRect(rect => {
console.log(rect); // 匹配到的元素本身
})
.exec();
```
其中,`boundingClientRect(callback: Function)` 方法可以获取匹配到的元素本身。在这个例子中,我们只是简单地输出这个元素到控制台上,你可以根据实际情况来处理这个元素。
需要注意的是,如果你要获取该元素的子元素,可以通过该元素的 `childNodes` 属性来获取,例如:
```javascript
const main = document.getElementById('main');
const childNodes = main.childNodes;
console.log(childNodes); // 子元素列表
```
其中,`childNodes` 属性返回一个子元素列表,包含该元素的所有子元素。
相关问题
<body> <div id="main"> <div id="GGA"> <div> <input type="file" name="" id="fileGGA"> <button id="BDGGA">选择文件</button> <button id="caculateGGA">统计</button> </div> <div id="timeGGA"> <span id="startTimeGGA">开始</span> <span>~</span> <span id="endTimeGGA">结束</span> </div> <div id="show"> <div id="chenggS"></div> <br> <div id="shibaiS"></div> <div id="errS"></div> </div> </div> <div id="showt"></div> <div id="showt2"></div> </div>
这是一个网页的 HTML 代码,包含了一个 body 元素和一个 id 为 main 的 div 元素。其中:
- `<div id="GGA">` 表示一个 id 为 GGA 的 div 元素;
- `<input type="file" name="" id="fileGGA">` 表示一个 type 为 file 的 input 元素,用于上传文件,id 为 fileGGA;
- `<button id="BDGGA">选择文件</button>` 表示一个 id 为 BDGGA 的 button 元素,用于触发文件选择框;
- `<button id="caculateGGA">统计</button>` 表示一个 id 为 caculateGGA 的 button 元素,用于触发数据统计功能;
- `<div id="timeGGA">` 表示一个 id 为 timeGGA 的 div 元素,用于显示时间区间;
- `<span id="startTimeGGA">开始</span>` 表示一个 id 为 startTimeGGA 的 span 元素,用于显示起始时间;
- `<span>~</span>` 表示一个无 id 的 span 元素,用于显示时间区间中的分隔符;
- `<span id="endTimeGGA">结束</span>` 表示一个 id 为 endTimeGGA 的 span 元素,用于显示结束时间;
- `<div id="show">` 表示一个 id 为 show 的 div 元素,用于显示统计结果;
- `<div id="chenggS"></div>` 表示一个 id 为 chenggS 的 div 元素,用于显示成功数据的统计结果;
- `<br>` 表示一个换行符;
- `<div id="shibaiS"></div>` 表示一个 id 为 shibaiS 的 div 元素,用于显示失败数据的统计结果;
- `<div id="errS"></div>` 表示一个 id 为 errS 的 div 元素,用于显示错误数据的统计结果;
- `<div id="showt"></div>` 表示一个 id 为 showt 的 div 元素;
- `<div id="showt2"></div>` 表示一个 id 为 showt2 的 div 元素。
uniapp 不使用document,然后根据html元素id 获取到当前的元素,比如 <div id='main'> <span></span> </div> 通过 id main 获取到 元素本身
在 uniapp 中,可以通过 `uni.createSelectorQuery()` 方法来根据元素 ID 获取到元素本身。该方法返回一个 `SelectorQuery` 对象,可以通过该对象的 `select(selector: string)` 方法来选取第一个匹配到的元素。
例如,可以通过以下代码选取 ID 为 `main` 的元素本身:
```javascript
uni.createSelectorQuery()
.select('#main')
.boundingClientRect(rect => {
console.log(rect); // 匹配到的元素本身
})
.exec();
```
其中,`boundingClientRect(callback: Function)` 方法可以获取匹配到的元素本身。在这个例子中,我们只是简单地输出这个元素到控制台上,你可以根据实际情况来处理这个元素。
需要注意的是,如果你要获取该元素的子元素,可以通过该元素的 `childNodes` 属性来获取,例如:
```javascript
uni.createSelectorQuery()
.select('#main')
.fields({
node: true,
size: true,
scrollOffset: true,
properties: ['childNodes']
}, res => {
const childNodes = res.childNodes;
console.log(childNodes); // 子元素列表
})
.exec();
```
其中,`fields(fields: Object, callback: Function)` 方法可以获取匹配到的元素的一些信息,例如它的位置、大小、滚动偏移量、属性等等。在这个例子中,我们通过在 `properties` 中添加 `childNodes` 来获取该元素的子元素列表。需要注意的是,通过 `fields()` 方法获取到的元素结构信息是一个类似于 HTML 字符串的形式,需要使用 `uni.htmlparser()` 方法来解析成 JSON 对象。