gpt4 book ai didi

javascript - jQuery - 如何从 ajax 请求获取元素的类

转载 作者:行者123 更新时间:2023-12-01 03:24:12 25 4
gpt4 key购买 nike

我通过替换 main 标记内的内容,使用 ajax 加载我的网站页面。问题是,使用 Wordpress,每个页面都有自己的 body 类,这些类对于样式目的很有用,所以我想用下一页的类替换旧页面的 body 类。

我想我应该运行一个新的ajax请求来获取整个html页面,然后检查body元素,然后使用.attr("class")来获取类列表,最后用新的主体类替换旧的主体类...

但这些类始终返回 undefined 而不是类列表。

编辑:我尝试使用.cd-main-content而不是body,奇怪的是它有效,我得到了这个元素的类。所以我现在假设问题不是来 self 的语法,而是来自元素本身。
我怎样才能让它在 body 元素上工作? (我已经尝试用 .filter 替换 .find 但它也不起作用。)

HTML结构

<body id="body" class="home page-id-number other-classes">
<main>
<div class="cd-main-content">
<!-- inside is the dynamically loaded content-->
</div>
</main>
</body>

jQuery

$.ajax({url: url, 
success: function(data){
var body = $(data).find("#body");
var classes = body.attr("class");
console.log(data); //returns the html as expected
console.log("body : "+body); //returns [object Object]
console.log("classes : "+classes); //returns undefined
}
});

最佳答案

从字符串获取时通过 jQuery 过滤“body”标签。

因此 $(data)[0] 将返回所有内容,不包含正文。

也使用过滤器,而不是“查找”所以你可以获得这样的类(class):

$.ajax({url: url, 
success: function(data){
//replace body tag
data = data.replace("<body", "<container").replace("body>", "container>");
var classes = $(data).filter("container").attr("class");
$("body").attr("class", classes);
}
});

关于javascript - jQuery - 如何从 ajax 请求获取元素的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951341/

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