layui如何获取父节点的父节点_layui框架中layer父子页面交互详解
时间: 2023-11-07 07:12:16 浏览: 39
在layui框架中,可以使用父页面的window对象来获取父节点的父节点。具体做法如下:
1. 在子页面中,通过 `window.parent` 获取父页面的window对象。
2. 在父页面的window对象中,通过 `window.parent` 再次获取父节点的window对象。
3. 在父节点的window对象中,通过 `document.getElementById()` 或其他DOM操作方法获取父节点的父节点。
示例代码如下:
在子页面中获取父节点的父节点:
```
var grandParentNode = window.parent.parent.document.getElementById('grand-parent-node-id');
```
在父页面中获取子页面的DOM元素:
```
// 子页面中的DOM元素ID
var childNodeId = 'child-node-id';
// 获取子页面的window对象
var childWindow = document.getElementById('iframe-id').contentWindow;
// 在子页面的window对象中获取DOM元素
var childNode = childWindow.document.getElementById(childNodeId);
```
相关问题
layui 父页面获取弹出层子页面值
可以通过以下步骤在layui父页面获取弹出层子页面的值:
1. 在子页面中定义一个函数,用于获取需要传递的值并返回。
例如,在子页面中定义一个函数 `getVal()`,用于获取输入框的值:
```
function getVal() {
var val = $('#inputVal').val();
return val;
}
```
2. 在父页面中使用 `layer.open` 打开弹出层,并传递一个回调函数。
例如,在父页面中打开弹出层,并传递一个回调函数 `function(data){}`:
```
layer.open({
type: 2,
content: '子页面URL',
btn: ['确定', '取消'],
yes: function(index, layero) {
var childWindow = layero.find('iframe')[0].contentWindow;
var val = childWindow.getVal();
// 调用回调函数,并将获取的值作为参数传递
callback(val);
layer.close(index);
}
});
```
3. 在回调函数中获取子页面返回的值。
例如,在回调函数中获取子页面返回的值并进行处理:
```
function callback(val) {
// 处理获取的值
console.log(val);
}
```
通过以上步骤,就可以在layui父页面中获取弹出层子页面的值了。
layui把父页面的值回显到子页面的下拉框
在layui中,想要将父页面的值回显到子页面的下拉框中,可以通过以下步骤实现:
1. 在父页面中,定义一个变量或者通过某种方式获取到需要回显的值。
2. 将这个值传递给子页面,在父页面的JavaScript中,可以使用如下代码将值传递给子页面:
```javascript
layui.use(['layer'], function(){
var layer = layui.layer;
var parentValue = '需要回显的值';
layer.open({
type: 2,
title: '子页面',
content: '子页面的URL',
area: ['500px', '400px'],
success: function(layero, index){
// 在子页面中使用layui的方法获取到子页面的DOM对象
var body = layer.getChildFrame('body', index);
// 通过DOM的id获取到下拉框
var select = body.find('#selectId');
// 将父页面的值设置为下拉框的默认值
select.val(parentValue);
// 使用layui的form模块进行下拉框的渲染
layui.use('form', function(){
var form = layui.form;
form.render('select');
});
}
});
});
```
3. 在子页面中的HTML代码中,定义一个id为selectId的下拉框:
```html
<select id="selectId" lay-verify="required">
<option value="">请选择</option>
<option value="值1">选项1</option>
<option value="值2">选项2</option>
<option value="值3">选项3</option>
</select>
```
以上代码中,通过layui的layer模块,打开一个子页面,并在子页面的加载成功回调函数中,获取到子页面中的下拉框,并将父页面的值设置为下拉框的默认值。最后使用layui的form模块渲染下拉框,完成父页面值的回显到子页面的下拉框中。