2011-11-18 10 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値からコロンを削除することが推奨されています。これがうまくいくかどうかを知りたい場合は、特定のシズルバージョンをテストする必要がありますが、それはすべきです。 – jfriend00

+0

それは、感謝しました!私はコロンを自分で追加しませんでした。それは、LESS言語(http://lesscss.org/)によって生成されています。 –

1

試してみてください。

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

jQueryのは、それが疑似セレクタだと思っているので、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(); 
関連する問題