2 cookie151 cookie151 于 2017.07.17 11:39 提问

怎么通过选择器,选择到AJAX html添加的页面属性.
需要做一个心跳检测.
一级页面展示的是一个设备分组,通过点击设备相应的分组.  发送AJAX请求查询当前分组下的设备.

然后将查询到的数据通过html写入到页面(html,或者取json解析append添加都可以).这一步完成之后.
我需要在这个页面取到通过html写入页面的每个div框中的id值. 但是由于是异步请求,没有刷新页面,
我的选择器,选不到异步加载的div.请问我怎么才能取到这些异步加载的div中的id值.需要再做一个异步的
心跳检测功能,在当前打开的设备分组下获取当前展示的所有设备的id,传到后台去.


5个回答

sxs161028
sxs161028   2017.07.17 11:43
已采纳

你用ajax异步请求的数据,直接写到页面中去了,把id也直接放在div中呀。你这种需求完全是可以的呀,异步请求本身就已经将你指定的页面刷新了,数据也赋值了。所以你要的数据都是可以获取的,搞不懂你为何获取不到

sxs161028
sxs161028 回复cookie151: 你在ajax的success里将从服务器获取的数据放到这个div中去,这个div最好有一个class名称,这样你选择的时候更直接。
5 个月之前 回复
cookie151
cookie151 我通过ajax在页面上添加了一个div块. 我无法通过选择器,去选择到这个div块啊.
5 个月之前 回复
cookie151
cookie151   2017.07.17 11:44

这是查询设备的:
function unfold(id) {
var url = "${contextPath}/wx/terminal/terminal/list.do";
$.post(url,{'search.terminalGroup.id':id }, function (html) {
$("div[id^='terminal_list']").empty();
$(".wd_btn_01").remove();
$("#terminal_list" + id).html(html);
}, "html");
}

这是分页的:
function morePage(id,currentPage){
var url = "${contextPath}/wx/terminal/terminal/list.do";
var params = {'search.terminalGroup.id':id ,'currentPage':currentPage};
$.post(url,params, function (html) {
$(".wd_btn_01").remove();
$("#terminal_list" + id).append(html);
}, "html");
}
这是返回的html: (我想获取到的就是异步添加的这个页面中的任何属性)

cookie151
cookie151 回复苏小苏: 解决了.不过没换json方式,用的serializeArray取获取的.
5 个月之前 回复
sxs161028
sxs161028 解决问题了吗
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 好的,谢谢了.
5 个月之前 回复
sxs161028
sxs161028 回复cookie151: 我不知道你这个返回的数据是什么样的。这个要看数据了
5 个月之前 回复
sxs161028
sxs161028 到点了,可以吃饭了。吃完饭。说不定你就想通了
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 特效方法是封装过了的,我append掉用会出问题.因为我点一次就会调用一下. 特效方法我上传了,我这个实现方式有办法拿到回调的html里面的具体属性吗
5 个月之前 回复
sxs161028
sxs161028 回复cookie151: 你这种数据,既要返回心跳检测的名称又要返回相应的id.肯定是用json更合理的。
5 个月之前 回复
sxs161028
sxs161028 回复cookie151: 那你就在append后,再调用一下这个特效方法。
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 我要这样做心跳检测的话,还是返回json串更好实现一点吗?
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 样式都加上了.因为这个按钮的特效是通过主页面的一个js方法去添加特效的. 我append上的有样式,却没有特效.
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 样式都加上了.因为这个按钮的特效是通过主页面的一个js方法去添加特效的. 我append上的有样式,却没有特效.
5 个月之前 回复
sxs161028
sxs161028 回复cookie151: 那你肯定是你的添加有问题呀。你改变了原有的页面按钮的样式肯定是不行。假如你之前的按钮名称是<a class='btn'>按钮</a>。然后你给这个按钮的写了样式。这个时候,你添加的时候,直接<a>按钮</a>肯定会改变了样式的。要把那个class带上。当然了,我不知道你是不是样式没写导致按钮变形。
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 差不多是这样,这一步已经实现了.只需要获取到异步加载页面里面的数据.做个心跳检测就好了.
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 循环在返回的html页面里面做了. 显示不全,你看里面有个</list>标签的
5 个月之前 回复
cookie151
cookie151 回复苏小苏: 我一开始是用json做的,但是我解析json.通过append去添加div块.会坏掉页面上按钮的特效.所以才直接返回一整个html页面的.
5 个月之前 回复
sxs161028
sxs161028 你这种需求,感觉很类似于很多下拉框一样。就像选择那个区域一样,先选择某一个省份,然后出现该省份下的所有市级。是类似这种需求吗?
5 个月之前 回复
sxs161028
sxs161028 你这整个的值就往页面中一放,你这种做法,不符合你再次编辑的需求。既然你这个展示的是一个设置分组,数据肯定不是一条了,我都没看到你用循环。而且你这个返回值最好是json格式的。每一第数据中有对应的设备名称和设备id。这样你利用循环,写入页面,每一个div都有设备名称和设备id。这样的话你选择下级设备传上本一级设备的id才可以查询到。
5 个月之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2017.07.17 11:45

心跳的话,可以弄一个定时器,定时发送ajax请求数据

hongjinwu
hongjinwu   2017.07.17 11:46

在数据渲染成功后获取DOM元素,也就是在ajax的success回调函数里获取。

cookie151
cookie151 回复hongjinwu: 是啊 .
5 个月之前 回复
hongjinwu
hongjinwu 回复cookie151: 就是想渲染成功后获取渲染的dom节点是吗?
5 个月之前 回复
cookie151
cookie151 回复hongjinwu: 渲染成功了.
5 个月之前 回复
hongjinwu
hongjinwu 回复cookie151: 那你页面数据渲染成功了吗?
5 个月之前 回复
cookie151
cookie151 我现在返回的是一个html. 没有返回json,无法通过回调解析json获取值啊. 我前端很水,望解答.
5 个月之前 回复
cookie151
cookie151   2017.07.17 12:04

//表单控件初始化(主要是针对小眼睛和开关控件)
window.addEventListener("click",function(){
var f=new Form("#formlr");
},true);
//定义exmobi返回
function back(){history.go(-1);}


Csdn user default icon
上传中...
上传图片
插入图片