我的函数在没有使用附加div
中的类的情况下运行得很完美,但是当我尝试在元素上添加class
时,它无效。
<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>
答案 0 :(得分:14)
在其他引号中使用时,只需转义引号。还可以使用属性中的相应其他引号。因此,如果您将该属性括在"
中,只需使用内部的'
和\'
以及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>
答案 1 :(得分:6)
由于您使用jQuery标记了您的问题,因此这里是使用mouseover
处理程序而不是onmouseover
属性的jQuery版本,它完全取消了引号的转义。
<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>
答案 2 :(得分:2)
如果你已经在使用jQuery,那么你可以这样做:
$(function() {
function showt(domElement){
$('body').append(domElement)
}
$("#hidemain").mouseover(function() {
showt($("<div />").addClass("sdf").text("test"));
});
})
答案 3 :(得分:1)
您需要使用\
转义嵌入式引号:
<a href="#" id="hidemain" onmouseover='showt("<div class=\"sdf\">appended</div>")'>show detail</a>
请注意,我也将内部引号更改为双引号以及转义它们,因为如果外部引号是围绕html元素属性使用相同类型的引用,则即使在转义时也可能无效。
答案 4 :(得分:1)
你可以尝试这个:
onmouseover='showt("<div class=\'sdf\'>appended</div>")'
这些引号需要转发'\'
。