2

我的函数在不使用附加类的情况下运行完美,div但是当我尝试class在元素上添加 a 时,它不起作用。

<head>
    <script type="text/javascript">
        function showt(id){
            $('body').append(id)
        }
    </script>
</head>

<body>
    <a href="#" id="hidemain" onmouseover='showt("<div class='sdf'>appended</div>")'>show detail</a>
</body>
4

5 回答 5

14

在其他引号中使用时,只需转义引号。也只需在属性内使用相应的其他引号。因此,如果您将属性包含在"just use'\'inside 和 vica verse 中。(感谢@nnnnnn 提到这一点!)

<a href="#" id="hidemain" onmouseover="showt('<div class=\'sdf\'>appended</div>')">show detail</a>

或者

<a href="#" id="hidemain" onmouseover='showt("<div class=\"sdf\">appended</div>')">show detail</a>

编辑

为了获取事件对象,您应该像这样以编程方式添加事件处理程序:

<a href="#" id="hidemain">show detail</a>
<script>
  document.getElementById( 'hidemain' ).addEventListener( 'click', function( event ) {
    showt( '<div class="sdf">appended</div>' );
    // here you have access to event and thus event.pageX
  });
</script>
于 2013-01-09T08:33:59.940 回答
6

mouseover由于您使用 jQuery 标记了您的问题,因此这里是使用处理程序而不是属性的 jQuery 版本onmouseover,它完全否定了引号的转义。

<head>
    <!-- include jquery.js here -->
    <script type="text/javascript">
        $(function() {
            $('#hidemain').mouseover(function() {
                showt('<div class="sdf">appended</div>');
            });
        });

        function showt(id){
            $('body').append(id)
        }
    </script>
</head>

<body>
    <a href="#" id="hidemain">show detail</a>
</body>
于 2013-01-09T08:36:30.237 回答
2

如果你已经在使用 jQuery,你可以这样做:

$(function() {
    function showt(domElement){
        $('body').append(domElement)
    }

    $("#hidemain").mouseover(function() {
        showt($("<div />").addClass("sdf").text("test"));
    });
})
于 2013-01-09T08:38:30.987 回答
1

您需要使用以下命令转义嵌入的引号\

<a href="#" id="hidemain" onmouseover='showt("<div class=\"sdf\">appended</div>")'>show detail</a>

请注意,我还将内引号更改为双引号并将它们转义,因为如果外引号围绕 html 元素属性,则即使转义,使用相同类型的引号也可能不起作用。

于 2013-01-09T08:35:02.983 回答
1

你可以试试这个:

onmouseover='showt("<div class=\'sdf\'>appended</div>")'

这些引号需要转义'\'

于 2013-01-09T08:35:26.323 回答