我正在尝试将逗号添加到字符串中并通过以下函数显示到标签中:
HTML:
<input type="text" onkeyup="addCommas(this.value);" /> <br /><br />
<label id="result">Result: </label>
JS
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
var result = x1 + x2;
document.getElementById('result').value = result;
}
但不会将结果显示在标签中。
我做错了什么?
答案 0 :(得分:5)
试试这个
document.getElementById('result').innerHTML = result;
而不是.value
,请使用.innerHTML
答案 1 :(得分:5)
标签不使用value
来分配值。它使用innerHTML
。试试下面的内容。
document.getElementById('result').innerHTML = result;
正如评论中所指出的,最好使用textContent
或innerText
选项来设置值(仅适用于纯文本),因为它们比innerHTML
更安全。您可以使用它如下图所示。
document.getElementById('result').textContent = result;
或
document.getElementById('result').innerText = result;
innerText
属性不支持,并且它使用textContent
属性。因此,以下方法适用于各种浏览器。
var resultDiv = document.getElementById('result');
if (typeof resultDiv.innerText === 'string') {
resultDiv.innerText = result;
}
else {
resultDiv.textContent = result;
}
<强>来源:强>
答案 2 :(得分:3)
使用innerHTML
代替value
:
document.getElementById('result').innerHTML = result;
JSFIDDLE http://jsfiddle.net/J4mLD/1/
另请注意,要在JSFIDDLE中使用内联事件处理程序,您必须将第二个下拉列表设置为nowrap选项之一。