我如何遍历元素中的每个单词然后有条件地换行匹配?
How can I iterate over every word in an element and then conditionally wrap matches?
我在 ASP.NET 写我自己的博客,我使用 Gist embed 作为我的代码块。我想给代码上色以匹配特定语言在 IDE 中的显示方式。具体来说 Swift 在 Xcode.
我从一个 jsFiddle 开始,已经到了选择 "var" 并将其变成红色的地步,但是我找到的用于遍历单词并将它们换行的示例使用了 return 打破循环的值。
更新: 我在此处找到的 return 语句导致语法错误。我改编了 this post 的代码,很乐意探索替代方案。
如何遍历屏幕上的每个单词并有条件地换行?
我可以匹配一个词,但我找不到继续操作的方法。为了简单起见,我们只查找两个词,var & override。
我的代码:
var line = $('.line');
$.each(line, function(i, val){
var value = $('.line').text();
$("*:contains('var')").html(function(_, html) {
return html.replace(/(var)/g, '<span style="color:red;"></span>');
});
$("*:contains('override')").html(function(_, html) {
return html.replace(/(override)/g, '<span style="color:blue;"></span>');
});
});
我的jsFiddle.
你有一个遍历每一行的循环,在那个循环中你在每次迭代中获取所有包含一个单词的元素,进行替换 运行 很多次。
进行一次迭代,它可以通过回调到 html()
来完成,因为它在内部迭代,并在同一个循环中进行替换
$('.line').html(function(_, html) {
html = html.replace(/(var)/g, '<span style="color:red;"></span>');
html = html.replace(/(override)/g, '<span style="color:blue;"></span>');
return html;
});
我在 ASP.NET 写我自己的博客,我使用 Gist embed 作为我的代码块。我想给代码上色以匹配特定语言在 IDE 中的显示方式。具体来说 Swift 在 Xcode.
我从一个 jsFiddle 开始,已经到了选择 "var" 并将其变成红色的地步,但是我找到的用于遍历单词并将它们换行的示例使用了 return 打破循环的值。
更新: 我在此处找到的 return 语句导致语法错误。我改编了 this post 的代码,很乐意探索替代方案。
如何遍历屏幕上的每个单词并有条件地换行?
我可以匹配一个词,但我找不到继续操作的方法。为了简单起见,我们只查找两个词,var & override。
我的代码:
var line = $('.line');
$.each(line, function(i, val){
var value = $('.line').text();
$("*:contains('var')").html(function(_, html) {
return html.replace(/(var)/g, '<span style="color:red;"></span>');
});
$("*:contains('override')").html(function(_, html) {
return html.replace(/(override)/g, '<span style="color:blue;"></span>');
});
});
我的jsFiddle.
你有一个遍历每一行的循环,在那个循环中你在每次迭代中获取所有包含一个单词的元素,进行替换 运行 很多次。
进行一次迭代,它可以通过回调到 html()
来完成,因为它在内部迭代,并在同一个循环中进行替换
$('.line').html(function(_, html) {
html = html.replace(/(var)/g, '<span style="color:red;"></span>');
html = html.replace(/(override)/g, '<span style="color:blue;"></span>');
return html;
});