jQuery text()和show()不起作用(RoR应用程序)

时间:2015-07-20 15:20:25

标签: javascript jquery html ajax

我想对购物车中的商品数量进行自定义和简单的检查。

首先,我在我的一个菜单元素中加载了一个占位符div的页面:

lossdata <- structure(list(Unique.ID = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 
1L, 2L), Gross.amount = structure(c(5L, 1L, 8L, 4L, 1L, 7L, 3L, 
6L, 2L, 9L), .Label = c("0", "14,846.00", "161,212.13", "19,891.95", 
"223,220.00", "27,720.00", "355,000.00", "386,640.40", "900,000.00"
), class = "factor")), .Names = c("Unique.ID", "Gross.amount"
), class = "data.frame", row.names = c(NA, -10L))

lossdata$Gross.amount <- as.numeric(gsub(",", "", lossdata$Gross.amount))

然后在我的javascript文件(application.js)中,我有以下代码:

<div id="items_count" style="display:none;">(count)</div>

请求的AJAX成功执行,警报显示预期的文本(“(计数)”,然后说“(3)”,这意味着购物车中有3个项目。)

$(document).ready(function () { $items_count_element = $("#items_count"); if ($items_count_element.length > 0 ) { $.ajax({ url: '/get_items_count', type: 'GET', dataType: 'json', success: function (response) { // Construct the new string to display items_count_new_content = "(" + response.items_count + ")"; // Printout to verify that we point to the correct div alert($("#items_count").text()); // Verify the new string to display alert(items_count_new_content); // Empty the div element and replace the content with the new string $("#items_count").empty().text(items_count_new_content); // Remove display : none $("#items_count").show(); } }); } }); $("#items_count").empty().html(items_count_new_content);似乎根本不起作用,即使功能很简单。而且,我过去曾多次使用它们并取得成功......

我试图用html()替换text()但没有成功。

任何想法可能会出现问题吗?

由于

2 个答案:

答案 0 :(得分:0)

在jQuery中,您可以使用val更改值:

$("#items_count").empty().val(items_count_new_content);

答案 1 :(得分:0)

调试后,我注意到我在页面上有两个菜单而不是一个(普通菜单和粘性菜单)。所以我的问题是使用id作为选择器我的元素。这导致jQuery仅替换粘性菜单(在页面顶部不可见)的内容,因为我们应该为DOM中的每个元素都有唯一的ID。

我通过$("#items_count")

替换$(".items_count_div")来解决我的问题

我希望它能帮助遇到类似问题的人。