如何修复Ghost主题中jQuery解析Handlebars模板内容的语法错误?
错误分析与修复方案
错误原因
- 模板语法嵌入错误:直接将Ghost模板变量
{{content}}写入JS模板字符串,JS会把{{content}}渲染后的HTML文本当作代码片段,导致<符号触发语法错误。 - jQuery选择器错误:原选择器
figure.kg-card kg-bookmark-card:first逻辑错误,目标元素是同时拥有kg-card和kg-bookmark-card类的figure,正确选择器应为figure.kg-card.kg-bookmark-card:first。
修复代码
// 获取页面中已渲染的文章内容容器(根据实际DOM结构调整选择器) const $contentContainer = $('.post-content'); // 定位目标书签卡片 const $targetBookmark = $contentContainer.find('figure.kg-card.kg-bookmark-card:first'); // 调用getBookmark函数(根据函数参数要求传值,示例传jQuery对象) const parsedBookmark = getBookmark($targetBookmark); // 用解析结果修改article的href if (parsedBookmark?.url) { $('article').attr('href', parsedBookmark.url); }
关键说明
- 不要在JS中直接引用Ghost模板变量
{{content}},而是通过DOM选择器获取页面上已经渲染完成的内容节点。 - 确认
getBookmark函数的参数类型:如果函数需要HTML字符串,就传入$targetBookmark.html();如果接受jQuery对象,直接传$targetBookmark即可。
内容的提问来源于stack exchange,提问作者X09
相关产品推荐
相关产品推荐

