我怎样才能修复我的代码,以便<罢工>不会使我的 Javascript 代码无效
How can I fix my code so that <strike> does not invalidate my Javascript code?
我使用以下代码来创建分数:
<script type='text/javascript'>
$(document).ready(function () {
$('.fraction').each(function(key, value) {
$this = $(this)
var split = $this.html().split("/")
if( split.length == 2 ){
$this.html('<span class="top">'+split[0]+'</span><span class="bottom">'+split[1]+'</span>')
}
});
});
</script>
如果我的身体中有以下代码,它就会成功格式化为分数:
<span class="fraction">4/1</span>
但是,如果我包含一个标签,如下图所示,该功能将不再起作用
<span class="fraction"><strike>4</strike>/1</span>
我该如何解决这个问题?谢谢!
使用 .text()
去掉 html 标签,只获取文本。
var split = $this.text().split("/")
JSFiddle
如果要在结果中保留 html 标记,一个简单的解决方案是使用不同的分数分隔符,例如双斜杠//
、反斜杠'
或管道|
。JSFiddle
使用此答案,您还可以使用正则表达式来验证它仅在<..>
中找不到该字符时才拆分。JSFiddle
var split = $this.html().split(/'/(?=[^>]*(?:<|$))/)
如果你想
正确地做到这一点(同时保留你的标记),它会变得有点复杂,因为你需要一个斜杠,该斜杠位于文本节点中,该斜杠是.fraction
元素的直接子节点;jQuery不能很好地处理文本节点。所以:
$(function() {
$('.fraction').each(function(_, e) {
var offset = 0, html = '<span class="top">', found = false;
$.each(e.childNodes, function(_, c) {
if (c.nodeType == Node.TEXT_NODE) {
if (m = c.textContent.match(/(.*)'/(.*)/)) {
found = true;
html += m[1] + '</span>/<span class="bottom">' + m[2];
} else {
html += c.textContent;
}
} else {
html += c.outerHTML;
};
});
if (found) {
e.innerHTML = html + '</span>';
}
});
});
.top {
color: red;
}
.bottom {
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="fraction"><strike>1</strike>/2</span>
<span class="fraction">2/2</span>
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 验证我的代码json
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 我不知道为什么我的代码是错误的?又有什么错
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- I'我不知道为什么我的代码没有'不起作用
- 为什么动态加载的事件在我的代码中不能正常工作
- 如何禁用我的切换按钮?这是我的代码
- 我需要将条形图集成到我的代码中
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作
- 在我的代码中,实体类"卡片展示”;不起作用
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 我的代码很完美,但我现在不知道为什么我发现了问题
- Html、css和jQuery.我的代码有问题
- 鼠标事件,我的代码出了什么问题
- 我怎样才能修复我的代码,以便<罢工>不会使我的 Javascript 代码无效
- 如何在我的“代码块”中使表格 Squarespace 网站响应式
- 如何使我的代码更快
- 在我的代码中管理大量硬编码数据的最佳方法