我遇到的问题是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');
}
});
感谢您的帮助。
答案 0 :(得分:2)
这是因为该值以String的形式返回。尝试添加:
todoList.todos2
当你使用大于,引擎期待一个数字。然后当它看到一个字符串时就会断开。
parseInt()会将字符串解析成整数
此外,由于该值可能会以' px'在它结束时这样做:
parseInt(currNameHeight)
currNameHeight.replace(' px','')将取代任何' px'它在字符串中找到' nothing'在将其解析为数字之前。