2011-11-18 5 views
2

나는 내용을 스타일 태그을 얻으려고하지만 난 그게 동작하지 않습니다jQuery로 스타일 태그 내용 가져 오기?

문제.

코드가 내가 jQuery를 사용하여 텍스트() 및 HTML()와 스타일 콘텐츠를하려고

을 무엇. 작동하지 않습니다.

내 코드

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <link rel="stylesheet/less" type="text/css" href="css/style.less"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script> 

    <style id="less:concepts-less-css-style" media="screen" type="text/css"> 
     body { 
      padding: 10px; 
      background: blue; 
     } 
    </style> 

</head> 
<body> 
<script src="js/less-1.1.5.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
     jQuery(document).ready(function($) {   
      var my_id = $('style').attr('id'); 
      var test = $('#less:concepts-less-css-style').text(); 
      var test2 = $('#less:concepts-less-css-style').html(); 
      alert(test + "#" + test2 + "#" + my_id); 
     }); 
    </script> 
</body> 
</html> 

답변

4

대개 선택기 구문에서 의미가 있으므로 ID에서 콜론 문자를 이스케이프 처리해야한다고 생각합니다. 이 문제에 대한 설명은 Handling a colon in an element ID in a CSS selector을 참조하십시오.

$('#less\\:concepts-less-css-style') 

필자는이 복잡성을 피하기 위해 ID 또는 클래스 값에 CSS 선택기 의미가있는 특수 문자를 사용하지 않습니다.

+0

jQuery가 지글 거리는 엔진을 사용하는 구형 브라우저에서도 작동합니까? 현대 브라우저의 내부 쿼리 선택기처럼 사양을 구현하지 않을 가능성이 있기 때문입니다. – Esailija

+0

이것은 CSS 스펙의 일부이며 오랫동안 사용되어 왔지만 OP가 ID 값에서 콜론을 제거 할 것을 권장합니다. 이 기능이 작동하는지 확실하게 알고 싶다면 특정 버전의 Sizzle을 테스트해야하지만, 그렇게해야합니다. – jfriend00

+0

그 덕분에, 감사합니다!. 나는 콜론을 직접 추가하지 않았다. 그것은 less 언어 (http://lesscss.org/)에 의해 생성되었다. –

1

시도 : jQuery를 그것이 의사의 선택이라고 생각하도록

$('#less:concepts-less-css-style')[0].innerHTML 
3

ID는 .. 시도한다

var elm = document.getElementById("less:concepts-less-css-style"), 
    content = elm.innerHTML || elm.innerText || elm.textContent; 

    alert(content); 

당신은 물론 변화의 수 id가 그렇게 엉뚱하지 않고 jQuery가 작동 할 것입니다.

+0

jQuery를하지 않았다 즉, 그러나 그것은했다. 감사! –

+1

@ JensTörnell, 더 자세히 읽고 대답을 읽어보십시오.) – Esailija

0

사용하십시오 속성 선택기 대신

var test = $('style[id="'+my_id+'"]').text(); 
    //or 
    var test2 = $('style[id="less:concepts-less-css-style"]').html();