2013-08-08 3 views
1

참조 된 CSS 파일 자체의 속성을 반복/액세스 할 수 있습니까?JavaScript/jQuery를 사용하여 CSS 속성에 액세스

들으니, 이상하게 들릴 수도 있습니다. 현재 Google Maps API를 일부 C# 코드 (JavaScript를 출력)에 포함시키고 있습니다. Polygon 클래스와 같은 것들을위한 Google Maps API는 적절한 값을 전달하여 'stroke-color'와 같은 특정 항목을 지정할 수있게하지만 Polygon의 클래스 이름을 설정하는 메소드를 찾을 수 없으며 즉시 Polygon 용. 따라서 HTML/CSS 사용자가 스킨을 사용하기 때문에 jQuery (.CSS()) 또는 CSS 파일을 구문 분석하고 내부에서 정의 된 속성을 가져 와서 JavaScript 코드의 값을 설정한다고 생각했습니다.

html.AppendLine("fillColor: '" + string.Format("#{0:X2}{1:X2}{2:X2}", fillcolor.R, fillcolor.G, fillcolor.B) + "',"); 

하지만이 같은으로 변경하는 것을 시도하고있다 :

는 일반적으로 나는과 같이 프로그래밍 예를 들어 색상을 (설정 것

html.AppendLine("fillColor: $(\"Poly\").css(\"fill-color\"),"); 

그리고의 속성을 잡아 다음과 같이 정의 된 참조 된 CSS 파일의 클래스 :

.Poly 
{ 
    stroke-color: #FF00FF; 
    fill-color: #FF00FF; 
} 

jQuery는 정의 된 요소를 g rab CSS 속성 ... CSS 파일에서 직접 값을 가져 오는 것 같지 않습니다 (잘못된 것일 수 있음). 위의 코드는 불행하게도 'undefined'가됩니다. 이것은 JavaScript 나 CSS가 녹슨 것이기 때문에 내가 접근 할 수있는 방법이 정확하지 않을 수 있습니다.

내 목적을 달성하는 방법에 대한 아이디어가 있습니까?

+0

HTML에 class = "Poly"인 태그가 있습니까? 어떤 것이 있으면 코드가 html이어야한다고 생각합니다.AppendLine ("fillColor : $ (\"Poly \ ") .css (\"fill-color \ "),"); –

+0

없습니다. 앞서 언급했듯이 Google Maps는 JavaScript ... pure JavaScript ...를 통해 처리합니다. 따라서 해당 HTML 태그를 찾을 수있는 옵션이 없습니다. 즉, Maps은 HTML 요소를 사용하지 않고 JavaScript로 Polygon을 그립니다. 일부 JavaScript를 사용하여 CSS 파일의 일부 속성을 가져 와서 Polygon의 생성자로 전달하고 싶습니다. – user978122

+0

http://www.w3.org/TR/DOM-Level-2-Style/css.html –

답변

0

CSS 파일에서 CSS 속성에 액세스 할 수있는 몇 가지 방법이 있습니다. 그들은 약간 복잡합니다.

Access CSS file contents via JavaScript

How do you read CSS rule values with JavaScript?

이 경우에 대한 나의 솔루션입니다. 첫째, 당신이 사업부를 선택한 다음 선택한 CSS

<div class="Poly" id="dumbPoly"></div> 

을 적용 빈 사업부를 만듭니다 CSS 값 속성을 얻을

html.AppendLine("fillColor: $(\"#dumbPoly\").css(\"fill-color\"),") 

=========== ========================================================================================================== ================

당신은
$('#dumbPoly').hide(); 
jQuery를

에 의해 눈에 보이지 않는 사업부를 설정할 수 있습니다

또는 자바 스크립트 파일에 액세스 사업부

<div class="Poly" id="dumbPoly" style="display: none;"></div> 
+0

아,하지만 그 div에 뭔가가 적용되면, 한 이름이나 다른 이름으로 속성이 적용됩니다. 그들 모두를 나열하지 않았거나 내가 지원할 모든 Google 클래스도 포함하지 않음), div가 표시되게합니까? 그런 다음 내 페이지에 원치 않는 보이는 div가 있습니다. – user978122

+0

답변을 편집했습니다. 질문이 있으시면 언제든지 물어보십시오. –

0

의 스타일을 설정 조금 황당. 그것은 각각의 브라우저에서 다르게 작동 - 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

document.styleSheets[0].rules[0].selectorText 

첫 번째 인덱스의 반복을 문서에있는 모든 스타일 시트,이 시트에서 각 규칙을 통해 초 이상.

+0

흠, 자세한 내용을 설명하는 링크가 있습니까? – user978122

관련 문제