gpt4 book ai didi

jquery - 获取字符串中 的内容

转载 作者:搜寻专家 更新时间:2023-10-31 22:23:07 31 4
gpt4 key购买 nike

我想做以下事情。

$("a").click(function (event) {

event.preventDefault();

$.get($(this).attr("href"), function(data) {

$("html").html(data);

});

});

我希望所有超链接的行为都能进行 ajax 调用并检索 html。

不幸的是,您不能简单地将当前 html 替换为您在 ajax 响应中收到的 html。

如何只抓取 <body> </body> 中的内容? ajax 响应的标记,以便我可以 替换现有 html 中正文的内容。

编辑:<body>开始标签不会总是 <body>它有时可能有一个类,例如

<body class="class1 class2">

最佳答案

如果我没理解错的话,请使用正则表达式获取 body 标签之间的内容。

$.get($(this).attr("href"), function(data) {
var body=data.replace(/^.*?<body>(.*?)<\/body>.*?$/s,"$1");
$("body").html(body);

});

编辑

根据您在下面的评论,这里有一个匹配任何 body 标签的更新,无论其属性如何:

$.get($(this).attr("href"), function(data) {
var body=data.replace(/^.*?<body[^>]*>(.*?)<\/body>.*?$/i,"$1");
$("body").html(body);

});

正则表达式是:

^               match starting at beginning of string

.*? ignore zero or more characters (non-greedy)

<body[^>]*> match literal '<body'
followed by zero or more chars other than '>'
followed by literal '>'

( start capture

.*? zero or more characters (non-greedy)

) end capture

<\/body> match literal '</body>'

.*? ignore zero or more characters (non-greedy)

$ to end of string

添加 'i' 开关以匹配大小写。

请忽略我关于“s”开关的评论,在 JavaScript 中,所有 RegExp 默认情况下都是单行的,要匹配多行模式,您可以添加“m”。 (该死的 Perl,在我写 JavaScript 的时候干扰我!:-)

关于jquery - 获取字符串中 <body> </body> 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195615/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com