使用jQuery获取样式标记内容?

时间:2011-11-18 21:15:18

标签: jquery

问题

我正在尝试在样式标记 中获取 ,但我无法让它工作。

代码的作用

我使用jQuery并尝试使用text()和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 个答案:

答案 0 :(得分:4)

我认为您必须在ID中转义冒号字符,因为它通常意味着选择器语法中的某些内容。有关此问题的讨论,请参阅Handling a colon in an element ID in a CSS selector

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

我个人使用CSS选择器中的特殊字符避免使用我的ID或类值来避免这种复杂化。

答案 1 :(得分:3)

id是这样jQuery认为它是一个伪选择器..试试

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

    alert( content );

你当然可以改变id不要那么不稳定,jQuery会起作用。

答案 2 :(得分:1)

尝试:

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

答案 3 :(得分:0)

使用属性选择器

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