<template> <div> <div class="dialog-mask" @click="$emit('close-dialog')" v-show="dialogVisible"></div> <div class="dialog" v-show="dialogVisible"> <div class="dialog-content"> <div class="dialog-title">询价条</div> <div class="dialog-body"> <div id="copy-container" class="textarea"> 需要在以上html上使用 document.getElementById('cpoy-container').innerText,报错:[system] TypeError: Cannot read property 'innerText' of null at VueComponent.copyToClipboard (quickInquiryInfo.vue:85)
时间: 2023-09-26 17:10:45 浏览: 49
根据报错信息 `[system] TypeError: Cannot read property 'innerText' of null`,我们可以看到 `document.getElementById('cpoy-container')` 返回了 `null`,而在之后的代码中又尝试调用 `innerText` 属性,所以会抛出 TypeError。这个问题通常是由于找不到对应 ID 的元素引起的。
解决这个问题的方法有几种,你可以尝试以下几个步骤:
1. 确保在 HTML 中有一个 ID 为 `copy-container` 的元素。你可以使用浏览器的开发者工具检查一下这个元素是否存在。
2. 确保在 JavaScript 代码中使用的 ID 是正确的,没有拼写错误或者大小写错误。
3. 确保 JavaScript 代码执行的时机是在 HTML 元素加载完成之后。你可以将代码放在 `mounted` 钩子函数中或者使用 `window.onload` 事件来确保代码在 HTML 加载完成后执行。
如果这些方法都没有解决问题,你可以尝试在代码中加入一些调试语句,例如打印调试信息或者检查元素的父元素是否正确等,以便更好地定位问题所在。
相关问题
<template> <div> <div class="dialog-mask" @click="$emit('close-dialog')" v-show="dialogVisible"></div> <div class="dialog" v-show="dialogVisible">,如何用emit方式关闭资金
同样的,你可以在 `div.dialog-mask` 上绑定 `@click` 事件,然后在事件处理程序中调用 `$emit('close-funds')` 来关闭资金。具体代码实现如下:
```
<template>
<div>
<div class="dialog-mask" @click="$emit('close-funds')" v-show="dialogVisible"></div>
<div class="dialog" v-show="dialogVisible">
<div class="dialog-content">
<div class="dialog-title">资金</div>
<div class="dialog-body">
<div id="funds-container" class="textarea">
<!-- 对话框内容 -->
</div>
</div>
</div>
</div>
</div>
</template>
```
在这个例子中,我们在对话框外层包裹了一个 `<div>` 元素,并在这个元素上绑定了 `@click` 事件。当用户点击对话框外部时,事件处理程序将调用 `$emit('close-funds')` 来触发父组件的 `close-funds` 事件,从而关闭资金对话框。注意,这里的事件名称需要与父组件中相应的事件名称保持一致。
指出这段代码的错误 <template> <div class="manage"> <el-dialog title="提示" :visible.sync="dialogVisible" width="30%"> <span>这是一段信息</span> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" @click="dialogVisible = false">确 定</el-button> </span> </el-dialog> </div> <div class="manage-header"> <el-button type="primary" @click="dialogVisible = true">+ 新增</el-button> </div> </template> <script> export default { // name: "Emp", data() { return { dialogVisible: false, primary:"", }; } } </script> <style scoped></style>
这段代码没有明确引入 Element UI 组件库,应该在 `<script>` 标签中添加 `import` 语句引入 Element UI 组件库。另外,代码中的 `el-dialog` 组件未被正确地包裹在 `el-button` 组件内,应该将 `<span slot="footer" class="dialog-footer">` 标签移动到 `el-dialog` 组件标签内,并将其中的内容用 `el-button` 组件包裹。修改后的代码如下:
```
<template>
<div class="manage">
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
<span>这是一段信息</span>
<template slot="footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</template>
</el-dialog>
</div>
<div class="manage-header">
<el-button type="primary" @click="dialogVisible = true">+ 新增</el-button>
</div>
</template>
<script>
import { ElButton, ElDialog } from 'element-ui';
export default {
components: {
ElButton,
ElDialog,
},
data() {
return {
dialogVisible: false,
primary: "",
};
},
};
</script>
<style scoped></style>
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<van-nav-bar> <template v-slot:right> 去注册 > </template> </van-nav-bar> 飞腾兔 国内领先的人力资源服务器 <van-field v-model="form.phoneNumber" clearable placeholder="11位手机号" class="custom-field" > <template #label> +86 <van-divider vertical /> </template> </van-field> <van-field v-model="form.idNumber" clearable placeholder="后六位" class="custom-field" > <template #label> 身份证 <van-divider vertical /> </template> </van-field> <van-button type="primary" class="btn" @click="getLogin"> 登 录 </van-button> <van-button @click="getRegister">身份证登录</van-button> 登录代表您已同意用户协议和隐私协议 给用户协议,加一个click事件,点击出现一个dialog,里面有协议内容
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)