动态数据URL字符串的Jquery Replace()段?

Posted

技术标签:

【中文标题】动态数据URL字符串的Jquery Replace()段?【英文标题】:Jquery Replace() segment of Dynamic data-url string? 【发布时间】:2020-09-02 12:56:21 【问题描述】:

尝试创建一个 Ajax 添加到愿望清单按钮,该按钮根据给定链接是否存在于数组中来更改给定链接的 data-url。

认为我在正确的路线上,但无法让 .replace() 实际实施。

我如何在这里错误地使用 replace()?

var wishlistBtn = $('.add-to-wish'); 
var wishlistIds = [];


$.each(wishlistBtn, function()

        var curId = $(this).data('id');
        var curURL = $(this).data('url');   
        var cur = $(this);

        if($.inArray(curId, wishlistIds) > -1)

          cur.addClass('in-wishlist');
          curURL.replace('Add', 'Delete');

         else 
          cur.removeClass('in-wishlist');
          curURL.replace('Delete', 'Add');
            
);

data-url 是用 twig.php 动态生成的

【问题讨论】:

【参考方案1】:

.replace 只为您提供替换的字符串 - 它不会执行任何副作用。如果你想要一个副作用,你必须明确地做 - 将替换的字符串分配给 url 属性:

if($.inArray(curId, wishlistIds) > -1)
  cur.addClass('in-wishlist');
  $(this).data('url', curURL.replace('Add', 'Delete'));
 else 
  cur.removeClass('in-wishlist');
  $(this).data('url', curURL.replace('Delete', 'Add'));
    

【讨论】:

好的,所以它正在调用字符串但实际上并没有对它做任何事情?感谢您的建议! 字符串不是函数,它们不能真正被“调用”。您的原始函数正在调用一个字符串 method 作为回报,它会为您提供一个新字符串,但是是的,因为您没有对新字符串做任何事情,所以它在您的原始代码中未使用。

以上是关于动态数据URL字符串的Jquery Replace()段?的主要内容,如果未能解决你的问题,请参考以下文章

在页面中使用拼接字符串的方式显示动态加载的数据

使用 Jquery $getJSON 如何在 Url 参数之后为 [data] 参数动态创建数据?

jQuery 将文本添加到 URL 的末尾

jquery数组问题

jquery--替换字符串,去除字符串

jquery easyui combobox如何动态加载.json数据