Javascript js中的if语句工作不正常
我的Javascript js中的if语句工作不正常,javascript,jquery,html,css,if-statement,Javascript,Jquery,Html,Css,If Statement,我的如果(i>0)语句不起作用,有什么建议吗 我希望它能防止我的初始表单框对 $('.remove')。如果i=0,请单击(函数() <html> <head> <script src="jquery.js"></script> <script type="text/javascript"> var i = 0; $('document').ready(function () {
如果(i>0)
语句不起作用,有什么建议吗
我希望它能防止我的初始表单框对
$('.remove')。如果
i=0,请单击(函数()
<html>
<head>
<script src="jquery.js"></script>
<script type="text/javascript">
var i = 0;
$('document').ready(function () {
if (i > 0) {
$('.remove').click(function () {
i--;
$(this).closest('form').remove();
});
}
$('.clickme').click(function () {
if (i < 5) {
i++;
$(".form1").last().clone(true, true).appendTo("body");
} else {
$(".form1")
}
});
});
</script>
</head>
<body>
<h3>Invite your friends</h3>
<form class="form1">
<input id="email" name="email" />
<a class="remove" href="#">Remove</a>
<br/>
<br/>
<a class="clickme" href="#">Add</a>
</form>
</body>
</html>
var i=0;
$('document').ready(函数(){
如果(i>0){
$('.remove')。单击(函数(){
我--;
$(this).closest('form').remove();
});
}
$('.clickme')。单击(函数(){
如果(i<5){
i++;
$(“.form1”).last().clone(true,true).appendTo(“body”);
}否则{
$(“.form1”)
}
});
});
邀请你的朋友
在单击函数中使用语句,并添加逻辑运算符,如&&
,以获得准确的结果
$('.remove').click(function () {
if (i > 0 && i < 5 ) {
i--;
$(this).closest('form').remove();
}
});
$('.clickme').click(function () {
if (i < 5 && i > 0) {
i++;
$(".form1").last().clone(true, true).appendTo("body");
}
});
$('.remove')。单击(函数(){
如果(i>0&&i<5){
我--;
$(this).closest('form').remove();
}
});
$('.clickme')。单击(函数(){
如果(i<5&&i>0){
i++;
$(“.form1”).last().clone(true,true).appendTo(“body”);
}
});
在单击函数中使用语句,并添加逻辑运算符,如&&
,以获得准确的结果
$('.remove').click(function () {
if (i > 0 && i < 5 ) {
i--;
$(this).closest('form').remove();
}
});
$('.clickme').click(function () {
if (i < 5 && i > 0) {
i++;
$(".form1").last().clone(true, true).appendTo("body");
}
});
$('.remove')。单击(函数(){
如果(i>0&&i<5){
我--;
$(this).closest('form').remove();
}
});
$('.clickme')。单击(函数(){
如果(i<5&&i>0){
i++;
$(“.form1”).last().clone(true,true).appendTo(“body”);
}
});
再看看你的代码:
if (i > 0) {
$('.remove').click(function () {
i--;
$(this).closest('form').remove();
});
}
这会将事件处理程序绑定到所有。仅当i>0
时才删除元素。在DOM就绪时,i==0
因此处理程序永远不会被绑定。实际上,您试图实现的是在单击.remove
时检查i>0
。因此,检查需要在处理程序内部,而不是外部
$('.remove').click(function () {
if (i > 0) {
i--;
$(this).closest('form').remove();
}
});
编辑1:好吧,看起来你在找别的东西。你希望你的第一个表单
不会从页面中删除,因为你不能再添加新表单了。问题是你的i
表示页面上的表单数量(减去1,因为你从HTML中已有1个表单开始)与插入索引相反。有几种方法可以解决此问题:
- 为第一个表单提供一个额外的类,并在克隆表单中删除该类。然后,您可以检查单击的
.remove
是否是表单的子类,该类具有类似$(this).closest('form')。hasClass('firstForm')
- 手动将
.remove
链接仅添加到动态生成的表单。您可以构建一个模板元素,将其存储在变量中,然后将克隆附加到新表单
- 检查已单击其
.remove
的表单的索引。如果它是第一个,请不要将其删除
编辑2:好吧,所以你实际上并不关心是否删除了第一个表单,你只需要确保页面上至少有一个表单仍然存在。这就是为什么你一直在跟踪表单的数量。严重的,真正令人困惑的。如果你至少解释一下你的代码的理由,注释,这会有所帮助这不是事后的想法
无论如何,您应该对我的初始修复有足够的了解(在编辑之前)。再看看您的代码:
if (i > 0) {
$('.remove').click(function () {
i--;
$(this).closest('form').remove();
});
}
这会将事件处理程序绑定到所有。仅当i>0
时才删除元素。在DOM就绪时,i==0
因此处理程序永远不会被绑定。实际上,您试图实现的是在单击.remove
时检查i>0
。因此,检查需要在处理程序内部,而不是外部
$('.remove').click(function () {
if (i > 0) {
i--;
$(this).closest('form').remove();
}
});
编辑1:好吧,看起来你在找别的东西。你希望你的第一个表单
不会从页面中删除,因为你不能再添加新表单了。问题是你的i
表示页面上的表单数量(减去1,因为你从HTML中已有1个表单开始)与插入索引相反。有几种方法可以解决此问题:
- 为第一个表单提供一个额外的类,并在克隆表单中删除该类。然后,您可以检查单击的
.remove
是否是表单的子类,该类具有类似$(this).closest('form')。hasClass('firstForm')
- 手动将
.remove
链接仅添加到动态生成的表单。您可以构建一个模板元素,将其存储在变量中,然后将克隆附加到新表单
- 检查已单击其
.remove
的表单的索引。如果它是第一个,请不要将其删除
编辑2:好吧,所以你实际上并不关心是否删除了第一个表单,你只需要确保页面上至少有一个表单仍然存在。这就是为什么你一直在跟踪表单的数量。严重的,真正令人困惑的。如果你至少解释一下你的代码的理由,注释,这会有所帮助这不是事后的想法
无论如何,您应该对我的初始修复有足够的了解(在编辑之前)。将jquery更改为此,然后再试一次
$('document').ready(function () {
var i = 0;
$('.remove').click(function () {
if (i > 0) {
i--;
$(this).closest('form').remove();
}
});
$('.clickme').click(function () {
if (i < 5) {
i++;
$(".form1").last().clone(true, true).appendTo("body");
} else {
$(".form1")
}
});
});
$('document').ready(函数(){
var i=0;
$('.remove')。单击(函数(){
如果(i>0){
我--;
$(this).closest('form').remove();
}
});
$('.clickme')。单击(函数(){
如果(i<5){
i++;
$(“.form1”).last().clone(true,true).appendTo(“body”);
}否则{
$(“.form1”)
}
});
});
将jquery更改为此,然后重试
$('document').ready(function () {
var i = 0;
$('.remove').click(function () {
if (i > 0) {
i--;
$(this).closest('form').remove();
}
});
$('.clickme').click(function () {
if (i < 5) {
i++;
$(".form1").last().clone(true, true).appendTo("body");
} else {
$(".form1")
}
});
});
$('document').ready(函数(){
var i=0;
$('.remove')。单击(函数(){
如果(i>0){
我--;
$(this).closest('form').remove();