在 JavaScript 中动态显示文本框(textarea)的行号,可以通过监听文本框内容的变化,根据内容的行数来动态生成对应的行号显示。以下是实现这一功能的基础概念、优势、类型、应用场景以及示例代码:
input
或 keyup
事件,以便在内容变化时更新行号。split
)来计算文本框中的行数。以下是一个简单的示例,展示如何动态显示文本框的行号:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态显示文本框行号</title>
<style>
#lineNumbers {
user-select: none;
text-align: right;
padding-right: 5px;
border-right: 1px solid #ccc;
margin-right: 5px;
font-family: monospace;
}
#textBox {
width: 100%;
height: 200px;
font-family: monospace;
}
</style>
</head>
<body>
<div id="lineNumbers"></div>
<textarea id="textBox"></textarea>
<script>
const textBox = document.getElementById('textBox');
const lineNumbers = document.getElementById('lineNumbers');
function updateLineNumbers() {
const lines = textBox.value.split('\n').length;
lineNumbers.textContent = lines.toString().padStart(3, ' ').repeat(lines).trim();
}
textBox.addEventListener('input', updateLineNumbers);
updateLineNumbers(); // 初始化行号
</script>
</body>
</html>
div
和一个文本框 textarea
。updateLineNumbers
函数计算文本框中的行数,并更新行号显示区域的文本内容。split('\n')
方法根据换行符分割文本,计算行数。padStart
和 repeat
方法格式化行号显示。input
事件,当内容变化时调用 updateLineNumbers
函数。通过上述方法,你可以实现一个简单的动态行号显示功能,提升用户在编辑多行文本时的体验。
领取专属 10元无门槛券
手把手带您无忧上云