选择元素并替换each()中的文本
Selecting element and replacing text inside each()
我有一个列表,看起来像这样:
<ul id="offers">
<li class="unique-id-here">
<span class="country">US</span>
<span class="clicks">192</span>
<span class="ctr">9%</span>
</li>
</ul>
和我试图更新。点击与新值每5秒。
所以我的想法是,选择每个li ->获得唯一id->保存id到一个变量->到一个$。获取请求以请求给定id的点击->用新的点击替换当前的点击。
问题是我似乎不能正确地选择。点击…这是我的jQuery代码的样子:
var refreshId = setInterval(function() {
$("#offers li").each(function(){
var a = $(this).attr('class');
if(a) {
$.get("ajax.php", { opt: "stats", oid: a }, function(r) {
var j = eval('(' + r + ')');
$(this).find('.clicks').text('<strong>'+j.message.clicks+'%</strong>');
});
}
});
}, 5000);
关于如何正确替换每个li字段的.clicks值的任何想法?
非常感谢您的帮助
尝试:
var refreshId = setInterval(function() {
$("#offers li").each(function(){
var $li = $(this),
a = $li.attr('class');
if(a) {
$.get("ajax.php", { opt: "stats", oid: a }, function(r) {
var j = eval('(' + r + ')');
$li.find('.clicks').html('<strong>'+j.message.clicks+'%</strong>');
});
}
});
}, 5000);
您在$.get
中使用$(this)
,这将引用另一个对象。另外,你为什么使用eval
?为什么不向请求返回一个JSON对象呢?
另外,您正在使用text()
,但是您传递给参数的字符串包含HTML (<strong>
)。因此,我将text()
换成了html()
。
你可以这样做:
var refreshId = setInterval(function() {
$("#offers li").each(function(){
var clicks = $(this).find('.clicks');
var a = $(this).attr('class');
if(a) {
$.get("ajax.php", { opt: "stats", oid: a }, function(r) {
var j = eval('(' + r + ')');
clicks.text('<strong>'+j.message.clicks+'%</strong>');
});
}
});
}, 5000);
我认为你的问题是$(this)内的AJAX调用的成功函数没有你认为的范围。你可以做的另一件事是:
var refreshId = setInterval(function() {
$("#offers li").each(function(){
var $that = $(this);
var a = $(this).attr('class');
if(a) {
$.get("ajax.php", { opt: "stats", oid: a }, function(r) {
var j = eval('(' + r + ')');
$that.find('.clicks').text('<strong>'+j.message.clicks+'%</strong>');
});
}
});
}, 5000);
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 借助asp.net验证或java脚本对多个文本进行验证
- 无法在ajaxStart中更改跨度文本
- 高亮显示时编辑文本大小和颜色
- jquery中的文本框验证
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Sails.js:同时发布文本输入和一个文件
- 当鼠标悬停在文本中的单词上时显示警报
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 将纯文本URL转换为可单击链接
- 如何使用nodes和.createElement(“b”)将文本加粗
- 选择元素并替换each()中的文本