javascript - 对包含数据的 URL 使用 JQuery 和 AJAX

标签 javascript jquery ajax

我有这个简单的链接

<a href="${pageContext.request.contextPath}/update?id=${data.id}">Update</a>

${data.id} 已映射到我的 Controller 中,

map.addAttribute("data", data);

我不想使用链接,我想使用 jquery 和 AJAX,因为它不会刷新我的整个页面,而只会刷新页面的一部分。

相反,我会为我的 javascript 添加一个 id。

<a id="get-id">Update</a>

问题是我不知道如何将 data.id 传递给 JavaScript 文件

现在在我的 javascript 文件中

$('#get-id').click(function(){

    $.ajax({
        type: "get",
        url: ROOT_URL + '/update?id=${data.id}',            
        dataType: "text"
    }).done(function(data) {
        $('#update-container').html(data);
    });
});

最佳答案

您可以使用 data 属性来存储元素的元数据,如下所示:

<a id="get-id" data-id="${data.id}">Update</a>

然后,您可以使用 data() 方法在点击处理程序中读取该属性:

$('#get-id').click(function() {
    $.ajax({
        type: "get",
        url: ROOT_URL + '/update',            
        data: { id: $(this).data('id') },
        dataType: "text"
    }).done(function(data) {
        $('#update-container').html(data);
    });
});

How about If they were multiple buttons using that id. Which wont work. So I will use a class. How will I implement that?

模式是相同的。您将循环访问数据集以创建多个 a 元素,并按类分组:

<!-- in a loop -->
<a class="foo" data-id="${data.id}">Update</a>

除了选择器之外,jQuery 将完全相同:

$('.foo').click(function() {
    $.ajax({
        type: "get",
        url: ROOT_URL + '/update',            
        data: { id: $(this).data('id') },
        dataType: "text"
    }).done(function(data) {
        $('#update-container').html(data);
    });
});

关于javascript - 对包含数据的 URL 使用 JQuery 和 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37166262/

相关文章:

javascript - 使用 javascript 从数组中打印 x 个对象

javascript - 表单不提交回调

Javascript从ajax函数传递变量

javascript - 读取 ajax post 响应时遇到问题

javascript - 如何检测页面上的所有jqGrid是否已加载?

jquery - 使用 jquery 获取 json 中的 Json 并将其放入文本框中

javascript - Notification.requestPermission 在 Mac 版本的 Safari 中抛出错误

javascript - 如何根据其子项强制包装 div 保持其最佳宽度

javascript - 向所有仅具有 javascript/jquery 和 css 类的元素添加按钮/文本

javascript - knex.js 中的 createTable(...).createTable(...) 和 createTable(...).then(...) 有什么区别?