如果应用内联样式,如何从外部css文件获取css属性?

时间:2012-08-17 17:36:55

标签: jquery css

如果内联样式应用于同一个元素,如何使用js / jquery从外部源获取css属性? 例如:

<div id="my" style='left:100px'>some content</div>
<style>
    #my{left:250px;}
</style>

我想返回250px,如果可以在不删除内联样式的情况下返回?

3 个答案:

答案 0 :(得分:3)

您是否可以在页面加载后更改标记?如果是这样,我会使用jQuery将style属性更改为空值。然后我会通过jQuery获得左边的值。

var my = $('#my');
my.attr('style','');
var position = my.position();
alert(position.left);

或者如果您不想缓存var:

$('#my').attr('style','');
alert($('#my').position().left);

答案 1 :(得分:1)

我认为最好的选择是暂时删除内联样式,将其读出并放回去。

在样式被删除时,您将看不到元素的任何图形更改。它太快了。

http://jsfiddle.net/fp7UB/

function readstyle() {
    var el = document.getElementById('my');
    var attr = el.getAttribute('style');
    el.setAttribute('style', '');
    var val = el.offsetLeft;
    el.setAttribute('style', attr);
    return val;
}​

答案 2 :(得分:0)

执行此操作的一种方法是通过AJAX下载.css文件(您可以使用易于使用的 jQuery $.get()),然后使用它解析它JSCSPP或类似内容(another parser which is written in jQuery)。虽然这可能被视为过度杀伤,但它可以让您在一次抓取过程后访问所有规则。