- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在我的站点中实现用户信誉系统。因此,您可以在用户每次互动时(例如,每次他发表评论时)看到用户姓名后面的代表编号。还有一个投票系统也会改变用户的声誉,我希望代表编号能够反射(reflect)这种变化。所以我通过 ajax 调用一个文件,它返回该用户的新代表号。 html/php 文件是这样的第一个实例(如果他发帖):
echo '<div class="rep_user_id" id="rep_user_id_'.$posts_row['userid'].'"> '.$posts_row['user_rep'].'</div>';
然后(如果他发表评论):
echo '<div class="rep_user_id" id="rep_user_id_'.$com_row['userid'].'">'.$com_row['user_rep'].'</div>';
都给我这个:
<div class="rep_user_id" id="rep_user_id_110">293</div>
然后是js:
function change_reps() {
var userid = $('.rep_user_id').attr('id').replace('rep_user_id_','');
$.ajax({
url: "vote/get_reputation.php",
data: "userid="+userid,
success: function(server_response){
$("body").ajaxComplete(function(event, request){
var reputation = server_response;
$('#rep_user_id_'+userid).replaceWith(''+reputation);
$('#rep_user_id_'+userid).effect("highlight", {color:'red'}, 1000);
}); } }); }
此函数在另一个 ajax 成功后调用(以更新代表和投票)。因此,从这里开始,什么是有效的:一旦我单击向上或向下的任何箭头,我可以看到投票计数器向上或向下但我只看到用户代表仅在第一个实例(发布)中更改。为什么它只改变一次而不是整个文档?从另一个文件(包含)调用评论部分有什么关系吗?仅供引用,效果在所有情况下都有效!希望你能帮忙。谢谢
编辑: 因为我发现我没有很好地解释自己,所以我添加了更多行。问题是我不能一次修改具有相同 id 和类的多个元素(而不是多次更改一个元素)。所以我在整个页面中有很多次 293 但发布的代码只改变了一个元素!这就是触发 change_reps() 的原因:
$("body").on("click", ".vote_com_up", function(){
var com_id = $(this).attr('id').replace('vote_com_up_','');
$.ajax({
url: "vote/comment_vote.php",
data: "com_action=2&com_id="+com_id,
success: function(server_response){
$(".vote_com_number").ajaxComplete(function(event, request){
if(server_response == 'voted')
{ alert("Ya has votado en este post!");}
else{
var new_com_votes = server_response;
$("#vote_com_number_"+com_id).html(+new_com_votes);
} }); }
}).done(function() {
change_reps();
});
return false;
});
我做了一个小的 jsfiddle 来展示我想要的东西:
解决方案:Bryan Naegele 是对的:我需要类而不是 ID。
最佳答案
您通过id 访问此元素,然后用新的东西替换它。这将第二次起作用的唯一方法是,如果您替换它的内容与之前的 ID 相同;我猜它不会。
您确定不想使用 html
函数设置此元素的内容吗:
$('#rep_user_id_' + userid).html('' + reputation);
编辑
仔细观察您的 PHP,您似乎已经将其编码为实际替换整个 div。尽管如此,我还是建议不要对 PHP 进行编码以生成正确的元素 ID。考虑精简此 PHP,以便您只发送 div 的内容。然后你可以像上面那样更简单地使用 html
。
关于javascript - .replaceWith() 只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797936/
我正在制作一个包含大量空白 div 标签的简单网页 在我的 css 中,我将 div 设置为 100px x 100px 的正方形,并带有背景色。 我正在使用 jQuery 让鼠标通过改变颜色与 d
我看到了在链接功能中放租元素的其他示例 例子一: var template = ''; element.html(template); $compile(element.con
我的网站使用 jQuery 1.4.2。问题是 .replaceWith() 在 jQuery 1.4.2 的 IE6 和 IE7 中不起作用。 jQuery 1.4.2 中是否有 IE6 和 IE7
我正在尝试用 jquery ReplaceWidth() 替换一段 HTML yo 像这样: $('#content-box').replaceWith(response.box); 但后
我也尝试在其他问题上搜索此内容,但我似乎不理解这种方法。我正在尝试在图像顶部创建标题,如果文本长度超过 40 个字符,脚本应减少文本的长度,并在字符串末尾添加 3 个点 let content = d
如果在加载网站时创建文本字段,我可以使 jQuery 日期选择器工作,但如果我使用 .replaceWith() 函数使其显示,则它将无法工作。 这是我在网站加载时出现的代码: http://jsfi
我有一个如下所示的a: click to change 现在我想将其替换为另一个标签,例如 p。我尝试了这个但不起作用: function f1(tor) { tor.rep
是否有类似 replaceWith() 的 jQuery 函数,可以用新元素替换元素,而不破坏原始元素(只是隐藏它)。 最佳答案 你可以这样做: replace your first content
我正在尝试使用 .replaceWith 将单词替换为函数,但它不起作用我认为问题是我没有正确地正确编写函数,但我不知道如何正确编写它。任何人都可以帮助我吗(只是很小的一部分。)谢谢。
我有一个界面,我想通知用户使用 invoke运算符而不是 oldFunction . interface SomeInterface { operator fun invoke(param: A)
我有 3 个 div,我想用另一个 div 的开始标签替换第一个 div,用结束标签替换第三个 div。这就是我的意思: 1 2 3 当我尝试用替换(使用replaceWith())第一个div时第三
我需要单击一个列表项,将 div 中的文本替换为 xml 文件中节点中的文本。 我单击一个列表项并将结果存储在一个变量中。然后,我加载 xml,找到所需节点的标题,并将结果作为一个变量。然后我运行一个
我正在尝试使用 jquery 函数 replaceWith() 将具有“问题”类的现有 div 替换为相同的 div,只是按字母顺序排序。 排序有效,替换似乎有效,尽管它们似乎被无限次替换,而我只想将
我试图在 jQuery 中使用 replaceWith() 来替换我表中的一行,但它并没有替换。添加了新行,旧行仍然存在(直到我刷新页面)。我一定是遗漏了一些东西,因为从文档来看这应该可以工作....
所以我在替换我的 js/jQuery 代码上的空输出时遇到了一些麻烦,它正在替换每个文本,即使它是有效的。 没有 if (items[z].Office == null) { 语句: 使用 if 语句
我有以下标记: Headline Events...
我正在为我正在设计的 web 应用程序使用 jquery 的 .replaceWith() 函数。我的 HTML 是这样的: {% for service in services %}
这个脚本的第二个“点击”功能不起作用,我认为这只是一个语法问题。我对此很陌生。但我需要找到一种简单的方法,为变量数组调用一次实时“click”函数。 脚本可以工作,只是第二部分不行。 我正在寻找一种有
我不想在委托(delegate)中使用 live() 或 on() :/ 是否有其他方法可以替换元素的 HTML 代码但保留元素数据? 最佳答案 当您通过 JavaScript 替换 HTML 元素时
我有以下 jQuery 可以用选择字段替换输入字段。 input = $("input[id$='id_var']")[0]; input_class = input.getAttribute("cl
我是一名优秀的程序员,十分优秀!