javascript - 如何使用 map() 获取字符串列表的当前行
问题描述
我有以下代码:
{words.map((word: string, index) => (
<Span key={index}>
<Span>
{word}
</Span>
</Span>
))}
如果单词多于三行,我只想显示前三行单词并添加“...”作为列表中未显示的更多单词的标志。有谁知道我该怎么做?如何找到我在哪一行?
解决方案
如果您知道每行可以容纳多少个字符,则可以据此进行计算。不过,为了澄清:您只是想在末尾显示一个省略号,还是应该是一个可点击的元素来展开容器以显示整个列表?如果它是更基础的部分,你可以通过 JS 或使用 CSS 伪内容来完成。
示例 JS:
const container = document.querySelector('.words-list'); // whatever contains the list of words
const wordsStr = words.join(', ');
const lineChars = 20;
const linesToShow = 3;
if (wordsStr.length > lineChars * linesToShow) {
let wordsSub = wordsStr.substr(0, lineChars * linesToShow - 3) + '…';
container.innerText = wordsSub;
}
对于 CSS 部分,一旦您通过 JS 添加了一个类,您就可以使用text-overflow: ellipsis
或::after { content: '\2026' }
.
推荐阅读
- mysql - 如何选择具有相同项目 sku 和 qty 的订单?
- c# - 从 CSV 文件中一一读取数据 C#
- java - 在循环内只执行一次方法的更好方法是什么?
- python - 为什么我的 Fastcomet Django 网站没有加载 css?
- reactjs - 反应检查子输入字段值
- lua - 有人可以提供有关如何嵌入 Lua 的概述吗?
- javascript - 谁能解释 x == !x 是真的吗?
- php - 使用 PHP CURL 将 PDF 文件发送到 API 上传后得到文件 0 字节
- python - 搜索确切的字符串,匹配它。如果没有匹配的条目添加参数,如果部分匹配修改python文件
- c++ - C++ 字符串类