我想在Javascript中查看文本,但我似乎无法使代码生效。
var message = document.getElementById('helloWorld');
setTextContent(message, 'hello world!'.strike());
非常感谢任何帮助。还想在不使用CSS的情况下做到这一点。
还应该提到这些代码行位于另一个名为totalPackage()的函数中,该函数在用户单击按钮时运行。我希望在调用其他函数时显示我的消息 hello world!。
答案 0 :(得分:1)
试试这个
var message = document.getElementById('helloWorld');
message.innerHTML='<del>helloworld</del>'
答案 1 :(得分:1)
使用 Unicode Character 'COMBINING LONG STROKE OVERLAY' (U+0336)
E̶x̶a̶m̶p̶l̶e̶
function strikeThrough(text) {
return text
.split('')
.map(char => char + '\u0336')
.join('')
}
<input oninput="document.querySelector('#output').innerText = strikeThrough(this.value)" placeholder="type here"><p id="output"></p>
答案 2 :(得分:0)
如果#helloWorld
是DIV,那么您可以设置其innerHTML属性。
<div id="helloWorld"></div>
function setTextContent(msg, str) {
msg.innerHTML = str;
}
var message = document.getElementById('helloWorld');
setTextContent(message, 'hello world!'.strike());
这是一个小提示: http://jsfiddle.net/SXFLw/
答案 3 :(得分:0)
如果您希望分别对您提出的格式进行处理,可以使用字符串原型方法来处理它。 String.strike()
是非标准版,您可能会遇到浏览器兼容性问题。
String.prototype.strike = function() {
return '<div class="strike">'+ this +'</div>';
};
// <div class="strike"> hello world! </div>
var test = 'hello world!'.strike();
然后在CSS中你可以创建一个名为strike
的类。
.strike {
text-decoration: line-through;
}
<强> JSFiddle 强>
答案 4 :(得分:0)
strike()
的正确语法是str.strike()
所以请使用
setTextContent(message, 'hello world!'.strike());
答案 5 :(得分:0)
JavaScript中已经存在strike
方法,但它似乎是非标准的。
正常实现只是将字符串包装在strike
标记中。但请注意,结果不再是简单文本,因此将文本节点的textContent
属性设置为'some string'.strike()
将不会产生预期结果。它只会在文档中将标记显示为纯文本。
您可以随时实施填充,例如:
if (!(typeof String.prototype.strike === 'function')) {
String.prototype.strike = function () {
return '<strike>' + this + '</strike>';
};
}