当jquery版本为v1.10.2

时间:2015-12-29 16:01:28

标签: jquery

以下代码是使用$(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中开始工作。感谢

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));
}

演示: https://jsfiddle.net/41s1pq3a/40/

答案 1 :(得分:0)

您正在html function直接调用TextNodesconsole.log内的$(this) $elements.each会回复:

<TextNode textContent="\n           1 \n            ">

This answer explains TextNodes以及操作它们的原因。因此,您应该使用text function来获取所需的字符串。