我在純JS中找到了一段代碼來在文本中應用省略號。對同一類的每個元素運行jQuery返回undefined
function dotify(element) {
var limit = element.offsetTop + element.offsetHeight;
var dots = document.createElement('span');
if (element['data-inner'])
element.innerHTML = element['data-inner'];
else
element['data-inner'] = element.innerHTML;
dots.appendChild(document.createTextNode('...'));
element.style.overflow = 'hidden';
element.appendChild(dots);
while (dots.offsetTop + dots.offsetHeight > limit) {
dots.previousSibling.data = dots.previousSibling.data
.replace(/\W*\w+\W*$/, '')
}
}
當我將這段代碼應用到一個元素上時,它就像一個魅力一樣。但是,當我使用each()
函數將它應用於具有相同類的每個元素時,我有一個未定義的錯誤。
jQuery(".product-description").each(function() {
dotify(jQuery(this));
onresize = function(){ setTimeout(function() { dotify(jQuery(this)); }, 100); };
});
以下工作:
test = jQuery(".product-description")[0]
dotify(test);
onresize = function(){ setTimeout(function() { dotify(test); }
事實是,我也不確定。但是,您的代碼現在可以運行。謝謝。我還有一個與代碼有關的問題,但我應該打開一個新的問題。 – Tasos
@Tasos最好問一個新問題 –