Kev*_*rds 0 html javascript jquery
我是JavaScript的新手.完整代码在这里(无法在问题的主体中输入jQuery).
以下是代码的JS部分
$(document).ready(function(){
$("#btn1").click(function(){
var newtext = $("<b>It works!</b>");
newtext.hide();
$("p").append(newtext);
newtext.fadeIn();
});
});
Run Code Online (Sandbox Code Playgroud)
我打算做的是,当用户点击按钮("#btn1")时,一段新文本("It works!")应出现在HTML 的每个 <p>元素的末尾.但是当我运行代码时,文本仅被添加到最后一个 <p>元素.也就是说,如果您从上面的链接打开源代码,您将看到有两个<p>元素.但是"它有效!" 文本仅附加到第二个文本.
如何在每个 <p>元素的末尾添加此文本?
它将文本附加到每个文本<p>.但是,当您执行此操作时.fadeIn(),您只会影响附加的最后一个副本.尝试将其更改为
$("p b").fadeIn();
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案非常简单,如果您的HTML结构变得复杂,它可能会导致奇怪的效果.你可以用这样的东西更准确一些:
$(document).ready(function() {
var txtid = 1;
$("#btn1").click(function(){
var newtext = $("<b>It works!</b>").addClass("txt-" + txtid);
newtext.hide();
$("p").append(newtext);
$("p .txt-" + id).fadeIn().removeClass("txt-" + txtid);
txtid += 1;
});
});
Run Code Online (Sandbox Code Playgroud)
这会为您插入的每个文本块添加一个类.每个按钮单击的类都不同,但同时插入的所有文本块共享.这样,您可以确保您的.fadeIn()呼叫仅影响您刚刚插入的内容而不影响其他杂散<b>标记.