我正在通过替换main
标签内的内容来使用 ajax 加载我的网站页面。问题是,使用 Wordpress,每个页面都有自己的body
用于样式目的的类,所以我想用下一页的类替换旧页面的主体类。
我想我会运行一个新的 ajax 请求来获取整个 html 页面,然后检查body
元素,然后使用.attr("class")
来获取类列表,最后用新的替换旧的主体类......
但类总是返回undefined
而不是类列表。
编辑:我尝试使用.cd-main-content
而不是 body 并且奇怪的是它的工作原理,我得到了这个元素的类。所以我现在假设问题不是来自我的语法,而是来自元素本身。
我怎么可能让它在body
元素上工作?(我已经尝试替换为.find
,.filter
但它也不起作用。)
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] 将支持所有内容,没有正文。
也使用过滤器,而不是“查找”所以你可以得到这样的类:
$.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);
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句