检查位置是否存在

时间:2012-04-02 17:02:55

标签: jquery

我有一个包含元素的页面,具有相对位置。

style="position: relative;"

有些有顶/左坐标,有些没有。有没有办法用jQuery检查样式标记内部的坐标?

如果没有,我想通过以下方式添加它们:

if (...) {
    var myDiv = $(".myDiv");    
    var pos = myDiv.position();
    myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" });
}

3 个答案:

答案 0 :(得分:3)

您可以使用css方法:

var hasTop = $('#element').css('top') !== 'auto';
var hasLeft = $('#element').css('left') !== 'auto';

topleft的默认值为auto,因此如果css方法未返回,则您知道已在其他位置设置了样式属性。< / p>

答案 1 :(得分:3)

正如this jsfiddle所示,top / left的默认值为“ auto ”。因此,要检查CSS值是否已设置,您可以检查值是否为“ auto ”。


测试:

<div style="position: relative;"></div>

<div style="position: relative; left: 10px;"></div>

<div style="position: relative; left: badvalue;"></div>

<script type="text/javascript">
    $(function() {
        $('div').each(function() {
            alert($(this).css('left'));
        });
    });
</script>

答案 2 :(得分:2)

您只需检查下面的样式声明,

DEMO

HTML:

<span style="position: relative;"></span>
<span style="position: relative; top: 100px; "></span>
<span style="position: relative;"></span>
<span style="position: relative; left: 10px;"></span>
<span style="position: relative;"></span>

JS

$('span').each (function () {
    alert(this.style.left != '' || this.style.top != '');
});