我正在寻找浏览我网页上的内容。一些内容是文本,其他是链接,......我需要一个可以穿透它的功能。
找到了这个很好的答案:如何在一段文本上使用 JavaScript 设置删除线效果? (第二个答案)但我想将它转换成一个函数,以便我可以在任何地方使用它。
他原来的jsfiddle:http: //jsfiddle.net/alexdickson/wmBYx/
这是他的JS:
var findText = function(element, pattern, callback) {
if ( ! element.childNodes) {
return;
}
for (var childi = element.childNodes.length; childi-- > 0;) {
var child = element.childNodes[childi];
if (child.nodeType == 1) {
findText(child, pattern, callback);
} else if (child.nodeType == 3) {
var matches = [];
var match;
while (match = pattern.exec(child.data))
matches.push(match);
for (var i = matches.length; i-- > 0;)
callback.call(window, child, matches[i]);
}
}
}
findText(document.body, /./g, function(node, match) {
var element = document.createElement('span');
node.splitText(match.index + 1);
element.appendChild(node.splitText(match.index));
node.parentNode.insertBefore(element, node.nextSibling);
});
var spans = document.getElementsByTagName('span'),
spansLength = spans.length,
currentSpan = 0,
interval = setInterval(function() {
if (currentSpan == spansLength) {
clearInterval(interval);
}
spans[currentSpan++].style.textDecoration = 'line-through';
}, 100);
说实话,我什么都不懂,所以我不知道如何将其转换为 DRY 函数。(甚至不会告诉你我到目前为止得到了什么,我很惭愧)。
谢谢你的帮助
PS:我使用的是 jquery,所以非常欢迎您在其中添加一些内容。