为什么JQueryshow()函数只对带有选择器的一个(而不是所有)元素起作用
Why does JQuery show() function only work on one (rather than all) of elements with the selector?
JSFiddle。
在下面的SSCCE中,有一个<table>
嵌套在另一个<table>
中。
问题是关于#add
按钮的click
侦听器。具体地说,是函数的最后一个if/else
块。当您运行此代码时,单击Add TextField
按钮一次(或多次),您将看到应该在其上执行show()
的#remove
按钮仅显示第一个匹配选择器的,而不是两者(或全部)。
理想情况下,对于所有#remove
选择器,Remove TextField
应显示
问题是为什么?我该如何解决这个问题
$(document).on("click", "button#add", function() {
event.preventDefault();
var parentTable = $(this).parent().parent().parent().parent().parent().parent().parent().parent();
var lastTableRow = parentTable.children('tbody').children('tr:last');
//Adding the new row
parentTable.children('tbody').append(lastTableRow.clone());
//Reset lastRow variable
lastTableRow = parentTable.children('tbody').children('tr:last');
//Reset the fields
lastTableRow.find('table tbody tr td input').each(function() {
$(this).val('');
});
//update numberOfRows variable
var numberOfRows = parentTable.children('tbody').children('tr').length;
alert("numberOfRows:" + numberOfRows); //check
if (!(numberOfRows > 1)) {
$("#remove").hide();
} else {
$("#remove").show();
}
});
#outer-table {
padding: 20px;
border: 3px solid pink;
}
#inner-table {
border: 3px solid orange;
}
#remove {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="outer-table">
<tbody>
<tr>
<td>
<table id="inner-table">
<tbody>
<tr>
<td>
<p style="display:inline-block">Enter first complain:</p>
<input type="text" />
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>
<button id="add">Add Textfield</button>
<button id="remove">Remove Textfield</button>
</td>
</tr>
</tfoot>
</table>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Table Footer</td>
</tr>
</tfoot>
</table>
这是因为您将id
用于一组对象。id
在每个文档中应该是唯一的。您应该使用类名。
相关文章:
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 另一个Ajax函数触发的Ajax函数不起作用
- 创建了一个选项卡,但点击时不会起作用-jQuery issue/newbie
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 用键盘分页jQuery下一个和上一个控件.触发器('点击')不'不起作用
- 链接到手风琴中的另一个选项卡,嵌入的链接将不起作用
- 复选框一次选中一个不起作用
- 为什么JQueryshow()函数只对带有选择器的一个(而不是所有)元素起作用
- JavaScript:两个相同的函数,一个不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 为什么这不起作用?我认为这是一个转换问题
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- php中的mysql查询不起作用,但它在另一个php文件中起作用
- Javascript-点击事件应该触发一个函数,它'It’不起作用
- javascript正则表达式不起作用:至少一个0-9,一个a-z,一个a-z,一个来自$-_.+*'()
- 在lightboxdons'中打开一个新网站;不起作用
- 我上传了客户's服务器一个js函数不起作用
- 另一个.js文件中的函数不起作用
- 我正在尝试创建一个带有数据转换的按钮,但不起作用
- 我试图使用引导模式类来制作一个弹出注册表单,但弹出没有'不起作用