我想对购物车中的商品数量进行自定义和简单的检查。
首先,我在我的一个菜单元素中加载了一个占位符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()但没有成功。
任何想法可能会出现问题吗?
由于
答案 0 :(得分:0)
在jQuery中,您可以使用val
更改值:
$("#items_count").empty().val(items_count_new_content);
答案 1 :(得分:0)
调试后,我注意到我在页面上有两个菜单而不是一个(普通菜单和粘性菜单)。所以我的问题是使用id
作为选择器我的元素。这导致jQuery仅替换粘性菜单(在页面顶部不可见)的内容,因为我们应该为DOM中的每个元素都有唯一的ID。
我通过$("#items_count")
$(".items_count_div")
来解决我的问题
我希望它能帮助遇到类似问题的人。