jQuery ajax 在 ajax 结果中查找匹配项

jQuery ajax find match in ajax results

提问人:jifola 提问时间:6/5/2020 更新时间:6/5/2020 访问量:45

问:

正则表达式再一次给我带来了麻烦。

我正在进行ajax调用,在结果中,我试图找到一个匹配项并将其附加到当前页面上的头部。

当然,这是一个非常简化的例子,但我只是想让你了解我正在尝试做什么。

$.ajax({
    url: destinationUrl,
    success: function(results) {

        var matchToFind = '<link rel="stylesheet" id="elementor-post-510-css" href="http://localhost/webshop/wp-content/uploads/elementor/css/post-510.css?ver=1590740787" type="text/css" media="all">';

        $(results).find(matchToFind);

        $(matchToFind).appendTo('head');

    }
});

我认为 matchToFind 变量是正则表达式部分发生的地方。除了数字之外,它始终相同。其他部分我也不清楚。是 .filter .match.find .nearest 还是该组合应该是什么样子?如果这个解释不清楚,请告诉我。任何帮助将不胜感激,谢谢!

jquery 正则表达式 ajax 查找 匹配

评论

1赞 mplungjan 6/5/2020
你几乎没有机会对这样的字符串进行正则表达式。请改用 DOM - 你的 $(result) 是一个 jQuery 对象,而不是一个数组或字符串

答:

0赞 mplungjan 6/5/2020 #1

您正在寻找字符串而不是元素

试试这个

$.ajax({
  url: destinationUrl,
  success: function(results) {
    $(results).find("#elementor-post-510-css").appendTo('head');
  }
});

看:

const results = `<head><link rel="stylesheet" id="elementor-post-510-css" href="http://localhost/webshop/wp-content/uploads/elementor/css/post-510.css?ver=1590740787" type="text/css" media="all"></head>`;
console.log(
  $(results).find("#elementor-post-510-css")
);  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

评论

0赞 jifola 6/5/2020
偏离课程。我怎么能错过它有和 ID 的事实。你是我的英雄@mplungjan!但是我不得不将 .find 更改为 .filter 下一个挑战将是以某种方式获取唯一的 ID 数字。$(results).filter("#elementor-post-510-css").appendTo('head');