在段落上设置最大字符数
setup max characters on paragraph
大家好,我尝试使用 GetElementsbyClassName 将 maxLength 设置到我的电脑,但它不起作用?你有好主意吗 ?请
<td class="tabQuot-col-06">
<p class="MaxDescription" style="display: inline-block;">PACKING PREFORMED</p>
<a href="#" data-toggle="tooltip" data-placement="right" title="PACKING PREFORMED" class="tooltip-custom icon-fi-info" data-original-title="PACKING PREFORMED"></a>
</td>
<script>
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector),
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0, maxLength) + '...';
}
return truncated;
}
document.getElementsByClassName('MaxDescription').innerText =
truncateText('MaxDescription', 3);
</script>
getElementsByClassName returns 元素的集合,而不是单个元素。
您需要使用 [0]
定位您的第一个元素,因为 JavaScript 数组是从 0 开始的。
如果您想将此脚本应用于所有 MaxDescription
元素,则需要使用循环。
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector)[0],
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0, maxLength) + '...';
}
return truncated;
}
document.getElementsByClassName('MaxDescription')[0].innerText = truncateText('MaxDescription', 3);
<td class="tabQuot-col-06">
<p class="MaxDescription" style="display: inline-block;">PACKING PREFORMED</p>
<a href="#" data-toggle="tooltip" data-placement="right" title="PACKING PREFORMED" class="tooltip-custom icon-fi-info" data-original-title="PACKING PREFORMED"></a>
</td>
这是我第一次尝试回答。
您将获得 "undefined" element.innerText。这是因为使用 document.getElementsByClassName(selector) returns 元素数组。如果您想继续使用 getElementsByClassName,请将您的代码更改为 "element[0].innerText",或者如果您想在 class.
的每个元素上调用该函数,则迭代这些元素
否则,您可以将"MaxDescription"从class更改为id,并使用document.getElementByID。
改变这个:
var element = document.getElementsByClassName(selector),
truncated = element.innerText;
为此:
var element = document.getElementsByClassName(selector),
truncated = element[0].innerText;
用于遍历 class 的所有元素:
// for iterating through each:
for(int i = 0; i < element.length < i++){
var truncated = element[i].innerText;
if (truncated.length > maxLength) {
element[i].innerText = truncated.substr(0, maxLength) + '...';
}
}
这会在循环本身内设置所有元素的 innerText,因此不需要 return 函数中的任何内容。
这是一个 plunker,显示了您可以考虑的不同实施选项。
https://plnkr.co/edit/o7ELqTQQukSmpcjbO210?p=preview
希望这至少能有所帮助。
回答后对我帮助很大:
这是我的最终代码:
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector),
truncated = element[0].innerText;
for (var i = 0; i < element.length; i++) {
var truncated = element[i].innerText;
if (truncated.length > maxLength) {
element[i].innerText = truncated.substr(0, maxLength) + '...';
}
}
}
truncateText('MaxDescription', 3);
大家好,我尝试使用 GetElementsbyClassName 将 maxLength 设置到我的电脑,但它不起作用?你有好主意吗 ?请
<td class="tabQuot-col-06">
<p class="MaxDescription" style="display: inline-block;">PACKING PREFORMED</p>
<a href="#" data-toggle="tooltip" data-placement="right" title="PACKING PREFORMED" class="tooltip-custom icon-fi-info" data-original-title="PACKING PREFORMED"></a>
</td>
<script>
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector),
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0, maxLength) + '...';
}
return truncated;
}
document.getElementsByClassName('MaxDescription').innerText =
truncateText('MaxDescription', 3);
</script>
getElementsByClassName returns 元素的集合,而不是单个元素。
您需要使用 [0]
定位您的第一个元素,因为 JavaScript 数组是从 0 开始的。
如果您想将此脚本应用于所有 MaxDescription
元素,则需要使用循环。
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector)[0],
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0, maxLength) + '...';
}
return truncated;
}
document.getElementsByClassName('MaxDescription')[0].innerText = truncateText('MaxDescription', 3);
<td class="tabQuot-col-06">
<p class="MaxDescription" style="display: inline-block;">PACKING PREFORMED</p>
<a href="#" data-toggle="tooltip" data-placement="right" title="PACKING PREFORMED" class="tooltip-custom icon-fi-info" data-original-title="PACKING PREFORMED"></a>
</td>
这是我第一次尝试回答。
您将获得 "undefined" element.innerText。这是因为使用 document.getElementsByClassName(selector) returns 元素数组。如果您想继续使用 getElementsByClassName,请将您的代码更改为 "element[0].innerText",或者如果您想在 class.
的每个元素上调用该函数,则迭代这些元素否则,您可以将"MaxDescription"从class更改为id,并使用document.getElementByID。
改变这个:
var element = document.getElementsByClassName(selector),
truncated = element.innerText;
为此:
var element = document.getElementsByClassName(selector),
truncated = element[0].innerText;
用于遍历 class 的所有元素:
// for iterating through each:
for(int i = 0; i < element.length < i++){
var truncated = element[i].innerText;
if (truncated.length > maxLength) {
element[i].innerText = truncated.substr(0, maxLength) + '...';
}
}
这会在循环本身内设置所有元素的 innerText,因此不需要 return 函数中的任何内容。
这是一个 plunker,显示了您可以考虑的不同实施选项。
https://plnkr.co/edit/o7ELqTQQukSmpcjbO210?p=preview
希望这至少能有所帮助。
回答后对我帮助很大:
这是我的最终代码:
function truncateText(selector, maxLength) {
var element = document.getElementsByClassName(selector),
truncated = element[0].innerText;
for (var i = 0; i < element.length; i++) {
var truncated = element[i].innerText;
if (truncated.length > maxLength) {
element[i].innerText = truncated.substr(0, maxLength) + '...';
}
}
}
truncateText('MaxDescription', 3);