我用replaceWith批量替换了许多div中的html。替换后,我使用 jTruncate 来截断文本。但是它不起作用,因为在执行时,replaceWith 尚未完成。
我尝试了回调技巧(如何扩展 jQuery 的 ReplaceWith 函数以接受回调函数?)但没有用。
有任何想法吗?
$(".hotel_info").each(function () {
var div;
div = $(this);
div.replaceWith(data);
truncInfo(div);
});
function truncInfo(div) {
div.jTruncate({
length: 100,
minTrail: 100,
moreText: '[more...]',
lessText: '[less...]',
ellipsisText: '...',
moreAni: 'fast',
lessAni: 'fast'
});
}
好的,通过这篇文章找到了解决方案:jQuery ReplaceWith 查找新元素
看起来替换后,该对象已从 DOM 中删除,因此创建了一个新对象。所以,我必须像这样更改代码:
$(".hotel_info").each(function () {
var div;
var div2;
div = $(this);
div2 = div.replaceWithPush(data);
truncInfo(div2);
});
$.fn.replaceWithPush = function (a) {
var $a = $(a);
this.replaceWith($a);
return $a;
};
感谢大家抽出宝贵的时间!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)