使用 jQuery(如 JSX)生成干净的 HTML 标记
Generating clean HTML markup with jQuery (like JSX)
我一直是jQuery的长期用户,刚刚开始学习React。我真的很喜欢React使用JSX处理Javascript中的HTML标记的方式,所以我想知道是否有办法在jQuery中做类似的事情?
例如,我在jQuery中的所有Ajax调用都返回如下所示的内容:
.done(data){
var content = "";
content += "<div class='watermelon'>";
content += "<div class='green-shell'>";
content += data.inside;
content += "</div></div>";
$("#div-element").html(content);
}
是否可以让它看起来像这样:
.done(data){
<div class='watermelon'>
<div class='green-shell'>
{data.inside}
</div>
</div>
}
您可以像这样使用下划线模板:
var template = _.template('<div class='"watermelon'">' +
'<div class='"green-shell'">' +
'<%=inside%>' +
'</div>' +
'</div>'
);
.done(data) {
$("#div-element").html(template({inside: data.inside}));
}
仍然有点草率,因为它不是JSX。 如果这是您的一个选择,并且您开始真正喜欢 React。 我会尝试开始将 JQuery 重写为 React ,这样您就可以充分利用 JSX/React,而不是找到一种在 JQuery 中编写 JSX 替代方案的方法。 只是我的建议,因为我是 JQuery 的忠实粉丝,直到我看到虚拟 DOM 的优势以及 React 提供的优势。
> 这个问题在 ES2015 中得到了解决。您可以返回带有 backTick
的多行字符串。但是到目前为止,浏览器支持对此不利,因此您需要使用babel
或类似的东西进行转译。
.done(data){
$("#div-element").html(
`<div class='watermelon'>
<div class='green-shell'>
${data.inside}
</div>
</div>`
);
}
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- HTML标记在脚本标记中工作
- 是否可以添加这行“;“照原样”;在HTML标记中
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如果匹配项在特定的html标记中,则跳过regex匹配
- 使用 Pure JS 更改 HTML 标记名称
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- HTML标记,包含带引号的JavaScript代码中的引号
- 如何在JavaScript中创建打字机效果,这将考虑html标记规则
- 将c#视图模型转换为javascript模型时转义HTML标记
- Regex剥离具有特定属性的html标记
- 如何在不创建格式错误的HTML标记的情况下分解字符串
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 如何在angularJS中运行for循环而不使用html标记
- Riot 每个构建 HTML 标记
- 用HTML标记+ 替换关闭的HTML标记
- 存储包含html标记的文本
- Regex以转义HTML标记
- 在html标记中序列化javascript代码
- JS来显示HTML标记