如何隐藏按钮后面的文本-jQuery
我需要隐藏按钮和文本时,按钮被点击。我让它隐藏按钮,但我无法让我的点击事件隐藏li和p标记中的文本 这是到目前为止我已经掌握的Javascript/jQuery代码如何隐藏按钮后面的文本-jQuery,jquery,Jquery,我需要隐藏按钮和文本时,按钮被点击。我让它隐藏按钮,但我无法让我的点击事件隐藏li和p标记中的文本 这是到目前为止我已经掌握的Javascript/jQuery代码 $(document).ready(function() { $("#add").click(function() { var html = ""; $("ul").append("<br>" + '<input type="button" class="delete"
$(document).ready(function() {
$("#add").click(function() {
var html = "";
$("ul").append("<br>" + '<input type="button" class="delete" value="Task Complete">');
html += "<li>" + $("#task").val() + "</li>";
$("ul").append(html);
$("#task").val("");
}); // end click
$(".delete").click(function(){
$(this).hide();
$(this)..hide();
}); //end delete click
}); // end ready
这是我试图操纵的HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Task List</title>
<link rel="stylesheet" href="main.css">
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="tasks.js"></script>
</head>
<body>
<aside>
<h2>Add a task</h2>
<label for="task">Task:</label>
<input type="text" id="task" name="task"><br>
<label> </label>
<input type="button" id="add" name="add" value="Add Task">
</aside>
<main>
<h1>Task list</h1>
<ul>
<input type="button" class="delete" value="Task Complete">
<p><li>Wash car</li></p>
<input type="button" class="delete" value="Task Complete">
<p><li>Fertilize lawn</li></p>
<input type="button" class="delete" value="Task Complete">
<p><li>Clean out refrigerator</li></p>
</ul>
</main>
<footer></footer>
</body>
</html>
谢谢大家! 正如@charlietfl所指出的,您的HTML无效,但是您可以使用jQuery选择下一个元素
$(".delete").click(function(){
var $this = $(this);
$this.hide();
$this.next('p').hide();
});
如果你的html是有效的,并且在
<ul>
<li><input type="button" class="delete" value="Task Complete">
<p>Wash car</p></li>
<li><input type="button" class="delete" value="Task Complete">
<p>Fertilize lawn</p></li>
<li><input type="button" class="delete" value="Task Complete">
<p>Clean out refrigerator</p></li>
</ul>
根据评论进行更新
如果向网站动态添加元素,则无法使用。单击,因为它不会绑定到脚本执行后添加的元素。您必须使用jQuery,例如,您可以将其绑定到body,并侦听与选择器匹配的单击
$("body").on("click", ".delete", function(){
$(this).parent().hide();
// OR DEPENDS ON THE HTML YOU GO WITH
var $this = $(this);
$this.hide();
$this.next('p').hide();
});
更新2
如果你想使用有效的HTML,你应该更新你的add函数来附加有效的列表元素,例如
$("#add").click(function() {
var html = "";
var button = '<input type="button" class="delete" value="Task Complete">';
var taskText = '<p>' + $("#task").val() + '</p>'
html += "<li>" + button + taskText + "</li>";
$("ul").append(html);
$("#task").val("");
});
你有一个你试图操纵的HTML的例子吗?那个HTML是无效的。必须是……的孩子。。。。可能不是我当前任务的子项,但当我试图通过jQuery添加一个包含文本的新按钮时,我无法隐藏新任务。您好,请查看我的更新,以解决动态添加元素的问题。提供的代码仍然无法工作。应该是按钮还是按钮?原因.button将其表示为一个类?嗨,它应该是选择器,因此在本例中´.delete`,抱歉:更新了答案我实际上将其从.button更改为.delete!非常感谢你的帮助。我还有一个问题。当我动态添加另一个元素并且我想隐藏动态添加的元素时,它会隐藏整个列表。我创建元素时是否有问题??
$("#add").click(function() {
var html = "";
var button = '<input type="button" class="delete" value="Task Complete">';
var taskText = '<p>' + $("#task").val() + '</p>'
html += "<li>" + button + taskText + "</li>";
$("ul").append(html);
$("#task").val("");
});