获得每个跨度高度,如果超过40px,则更改css

时间:2013-01-09 11:05:00

标签: jquery

任何人都可以帮助我,我不明白错误在哪里。

这是我的jQuery:

function altezzadotgrey(){
    $('.views-field-title').each(function(){
        var aaltezzadotgrey = $(this).outerHeight();
        if ($(this).outerHeight() > 40) {
            $(this).css("margin-top", "-45px");
        }
    });
}

这是我的HTML:

<div class="views-row">
    <div class="views-field-title">
        <span class="field-content"><a href="">a</a></span>
    </div>
</div>
<div class="views-row">
    <div class="views-field-title">
        <span class="field-content"><a href="">b</a></span>
    </div>
</div>
<div class="views-row">
    <div class="views-field-title">
        <span class="field-content"><a href="">c</a></span>
    </div>
</div>
<div class="views-row">
    <div class="views-field-title">
        <span class="field-content"><a href="">d</a></span>
    </div>
</div>

我认为each()可能存在问题。

3 个答案:

答案 0 :(得分:1)

jQuery.css使用“DOM样式”属性而不是CSS样式,所以你这样:

$(this).css("marginTop", -45);

见这里:http://jsfiddle.net/4upSX/1/

实际上它也适用于“margin-top”...所以你确定你的'.views-field-title'实际上高于40px?

答案 1 :(得分:0)

function altezzadotgrey(){

  $('.field-content').each(function(){

        var h= $(this).css('height');
        if (parseInt(h)  > 40) {
            $(this).css("margin-top","-45px"); 
        }
    });
 }

答案 2 :(得分:0)

你只需要在身体负荷上调用你的功能

$( function() {    
    altezzadotgrey();    
});

function altezzadotgrey(){
    $('.views-field-title').each(function(){
        var aaltezzadotgrey = $(this).outerHeight();
        if ($(this).outerHeight() > 40) {
            $(this).css("margin-top", "-45px");
        }
    });
}

其他一切都是正确的