Jquery - 比在IE / safari中不起作用的用法更大

时间:2016-01-04 17:30:54

标签: jquery

我遇到的问题是IE和Safari中没有通过if语句执行的函数。我的代码在chrome和firefox中工作。在产品列表视图中,我按产品名称选取每个产品。然后我确定它的长度和高度,如果它在容器中创建一个多行名称,我想将产品向下推,以排列产品名称。

出于某些原因,在IE和Safari中,函数不会执行此if语句。

if( ( currNameLength >= 39 ) && ( currNameHeight >= 36 ) ) {

如果我使用=它会执行,所以我相信IE和Safari不喜欢> =

    $('.name-link').each(function() {

    var currNameLength = $(this).text().length;
    var currNameHeight = $(this).height(); 
    var currName = $.trim($(this).text());

    if( ( currNameLength >= 39 ) && ( currNameHeight >= 36 ) ) {

        $(this).parents('div[class="product-tile"]').css('position', 'relative');
        $(this).parents('div[class="product-tile"]').css('top', '20px');
        $(this).parents('div[class="product-tile"]').css('border', '1px solid green');

    }

});

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这是因为该值以String的形式返回。尝试添加:

todoList.todos2

当你使用大于,引擎期待一个数字。然后当它看到一个字符串时就会断开。

parseInt()会将字符串解析成整数

此外,由于该值可能会以' px'在它结束时这样做:

  parseInt(currNameHeight)

currNameHeight.replace(' px','')将取代任何' px'它在字符串中找到' nothing'在将其解析为数字之前。