以下代码是使用$(this).html()
版本v1.10.2时jquery
无法正常工作的示例代码,但jquery
版本为v1.6.4时相同的代码正在运行。看到我的代码,并给我建议如何摆脱这个,因为我们的产品使用jquery
版本v1.10.2。
$elements.each(function () {
//alert($(this).text());
if ($(this).html() === null) {
$item = $('<li class="current" />').append($(this));
}
else {
if (!isNaN(parseInt($(this).text()))) {
$item = $('<li />').append($(this));
}
else {
$item = $('<li class="navpage"/>').append($(this));
//alert($(this).text());
}
}
$list.append($item);
});
在此js小提琴链接https://jsfiddle.net/tridip/41s1pq3a/38/
中找到的完整代码只看&amp;使用名为v1.6.4和v1.10.2的2个不同版本运行jsfiddle
代码,然后了解$(this).html()
无效。
寻找建议我需要在代码中更改的内容$(this).html()
将在v1.10.2中开始工作。感谢
答案 0 :(得分:1)
此比较
<div style="
background:blue;
display:inline-block;
height:50px">
<div style="
font-size:30px;
width: 100%;
background:red">
Inner container</div>
</div>
风险太大。显然它在更新版本的jQuery中出现了问题。只需使用
if ($(this).html() === null) {
$item = $('<li class="current" />').append($(this));
}
答案 1 :(得分:0)
您正在html function直接调用TextNodes,console.log
内的$(this)
$elements.each
会回复:
<TextNode textContent="\n 1 \n ">
This answer explains TextNodes以及操作它们的原因。因此,您应该使用text function来获取所需的字符串。