无法使用jquery选择元素段落

时间:2014-01-02 15:30:34

标签: javascript jquery paragraph pre

<html>
<head>
<script>
$(document).ready(function(){
 $("p").click(function(){
     $(this).hide();
  });

});
  function func(){
var s = "<p id=" + id +">"+"<center>"+"<h2><b>Topic :</b></h2>"+message+"</center></p><br>";
document.getElementById("stat").innerHTML+=s;

}
</script>



</head>
<body>
//call function func
<pre id="stat" > </pre>
</body>
</html>

伙计函数func应该创建一个id为“id”的段落,内容作为标签内的消息,id为“stat”..它工作正常 但我不能使用'Jquery'选择器来使用

标签上的点击功能:/! 我插入内部的原因是我需要解释器将“\ n”视为新行。 为什么这样,不工作?

还有其他办法吗?

6 个答案:

答案 0 :(得分:1)

试试这个,

$(document).ready(function(){
 $(document).on('click','p',function(){
     $(this).hide();
  });    
});

答案 1 :(得分:1)

$(document).on('click', 'p', function() { $(this).hide();})

您编写的代码无法正常工作,因为加载文档时p元素不存在。由于动态添加了p元素,因此必须将事件附加到文档对象

答案 2 :(得分:0)

将点击事件处理程序附加到func

function func(){
    var s = "<p id=" + id +">"+"<center>"+"<h2><b>Topic :</b></h2>"+message+"</center></p><br>";
    document.getElementById("stat").innerHTML+=s;


    $("#" + id).click(function(){
        $(this).hide();
    });
}

或者更好的是:

function func(){
    var s = $("<p id=" + id +">"+"<center>"+"<h2><b>Topic :</b></h2>"+message+"</center></p><br>");
    $("#stat").append(s);

    s.click(function(){
        $(this).hide();
    });
}

答案 3 :(得分:0)

最快的方法是改变

var s = "<p id=" + id +">"+"<center>"+"<h2><b>Topic :</b></h2>"+message+"</center></p><br>";

var s = "<p id=" + id +" onclick=\"$(this).hide()\">"+"<center>"+"<h2><b>Topic :</b></h2>"+message+"</center></p><br>";

并删除此

$(document).ready(function(){
 $("p").click(function(){
     $(this).hide();
  });

});

答案 4 :(得分:0)

这可能有所帮助:

$('body').on('click', 'p', function(){
   $(this).hide();
});

答案 5 :(得分:0)

使用.on()代替

 $(document).on('click', 'p', function(){
     $(this).hide();
  });

.on()必须能够为动态创建的元素添加点击处理程序,例如<p>标记