2009-09-03 7 views
4

jQuery를 사용하여 요소에 특정 스타일이 인라인으로 설정되어 있는지 확인하는 방법은 무엇입니까? 문서 jquery 요소에 직접 설정된 CSS 스타일 검색

<style> 
.MyClass { position: relative } 
</style> 
... 
<div class="MyClass" id="div1" style="position: absolute"/> 
<div class="MyClass" id="div2"/> 
... 
<script> 
function f() { 
    assert($('#div1').SOMETHING('position') == 'absolute'); 
    assert($('#div2').SOMETHING('position') == ''); 
} 
</script> 

I는 .CSS ('위치')를 사용하면 주어진

는 예컨대, DIV2 '는 상대적인'인 것으로보고되어있다. 어떤 스타일이 실제로 인라인으로 설정되었는지 어떻게 알 수 있습니까?

+0

'css ('position')'이 상대를 말한다면 CSS 클래스 MyClass ... div1과 상대적으로 설정 되었기 때문에 그것은 "절대"로보고되어야합니다. – peirix

+0

@peirix : 알아요. 렌더링이 정확합니다. 그러나 인라인으로 설정했는지 알고 싶습니다. 그리고 때로는 위치를 설정하기도합니다. 인라인도 마찬가지입니다. 따라서이 모든 경우를 구별해야합니다. – erikkallen

+0

오. 따라서 특정 스타일이 인라인으로 설정되었는지 또는 CSS 마크 업을 사용 하는지를 알 수있는 방법이 있다면 무엇을 묻고 있습니까? 어떤 경우에는 TTG가 아래에 제안한대로 스타일 속성을 검사하는 것 외에는 정보가 없다고 생각하는 것을 제외하고는 실제로 생각하지 않습니다 ... – peirix

답변

2

나는

assert($('#div2').get(0).style.position == 'relative'); 

을하고 결국 그러나 나는 그 일을 더 jQueryish 방법을 기대했다.

+0

아래 코드를 –

+1

내 대답에 설명 된대로이 코드를 사용자 지정 선택기에 넣을 수는 있지만 그다지 도움이되지 않습니다. 내 문제는 "이 요소가 주어지면 상대 위치로 설정됩니까?"이지만 사용자 지정 선택기를 사용하면 "이 개체가 주어지면 상대 위치로 설정되는 위치가 무엇입니까?"라는 문제가 해결됩니다. 그것은 또한 누군가가 해결해야 할 문제 일 수도 있지만 적어도 지금은 아닙니다. – erikkallen

1

.attr('style')?
그리고 여기에 a link이 jQuery 문서에 있습니다.

+0

'attr ('style')을 사용하면''get get 'position : 상대방 "및 모든 다른 인라인 스타일도 사용할 수 있습니다. – peirix

+0

그럴 수는 있지만 반환 된 문자열을 구문 분석해야합니다. 나는 인라인 위치보다 스타일을 더 세울 것이다. – erikkallen

3

당신은 사용자 정의 선택 만들 수 있습니다

$(document).ready(function(){ 
    $.extend($.expr[':'], { 
     positionAbsolute: positionAbsolute, 
    }); 
}); 

function positionAbsolute(el) { 
    return $(el).css("position").indexOf("absolute") >= 0; 
} 

을 그리고 그렇게

if ($("#MyDiv").is(":positionAbsolute")){ 
    alert("Position absolute"); 
} 

같은이 스타일이 인라인 될해야합니까 액세스? 당신이 CSS 클래스, 예를 들어,

.positionAbsolute{position: absolute} 

을에 선언하고 대신 클래스 selctor를 사용할 수있는 경우 :

if ($("#MyDiv").is(".positionAbsolute")){ 
    alert("Position absolute"); 
} 
+0

+1. 내 문제를 해결했기 때문에가 아니라, 정말 멋진 일이기 때문입니다. 그러나, 나는 .css ('위치')를 사용할 수 없다는 질문에 언급 된 이유로 – erikkallen

+0

그냥 투표가 내려졌고 설명이 없습니다. 그게 정말 저를 짜증나게합니다 (아래 표는 아니지만 설명이 부족합니다). –

-1

그럼 그냥 .CSS 방법을 사용할 수 있습니다, 이것은 모두를 반환 해당 요소에 첨부 된 스타일.

+0

나는 왜 내가 그것을 할 수 없었던 가라는 질문에 언급했다. – erikkallen

관련 문제