我有一个包含元素的页面,具有相对位置。
style="position: relative;"
有些有顶/左坐标,有些没有。有没有办法用jQuery检查样式标记内部的坐标?
如果没有,我想通过以下方式添加它们:
if (...) {
var myDiv = $(".myDiv");
var pos = myDiv.position();
myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" });
}
答案 0 :(得分:3)
您可以使用css
方法:
var hasTop = $('#element').css('top') !== 'auto';
var hasLeft = $('#element').css('left') !== 'auto';
top
和left
的默认值为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)
您只需检查下面的样式声明,
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 != '');
});