Javascript 如何删除特定的<;td>;使用jquery动态添加表中没有id的单元格?
该表包括一个下拉框和一个带值的普通Javascript 如何删除特定的<;td>;使用jquery动态添加表中没有id的单元格?,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,该表包括一个下拉框和一个带值的普通。当更改下拉列表的onChange时,特定的必须更改为另一个下拉列表。我已经使用jQuery实现了这个函数,但是当我更改第一行的下拉列表时,整个表都发生了更改。我只需要对调用了onChange函数的单行进行更改 $('td:nth-child(11),th:nth-child(11)').hide(); $('td:nth-child(10),th:nth-child(10)').show(); 用于隐藏和显示第10列和第11列 doc.ready函数():
。当更改下拉列表的onChange
时,特定的
必须更改为另一个下拉列表。我已经使用jQuery实现了这个函数,但是当我更改第一行的下拉列表时,整个表都发生了更改。我只需要对调用了onChange
函数的单行进行更改
$('td:nth-child(11),th:nth-child(11)').hide();
$('td:nth-child(10),th:nth-child(10)').show();
用于隐藏和显示第10列和第11列
doc.ready函数():
使用的onChange函数:
$(document).on('change','.mySelect', function(event) {
event.preventDefault();
$('td:nth-child(11),th:nth-child(11)').hide();
$('td:nth-child(10),th:nth-child(10)').show();
//$(this).closest("td").show();
var _this = $(this);
var id =_this.val();
var statusValue = id;
$.get('AssignedTo', { statusVal : statusValue }, function(response) {
var select = _this.closest("tr").find("select[name='assigned']");
/* var select = $('#assigned'); */
select.find('option').remove();
$.each(response, function(index, value) {
$('<option>').val(value).text(value).appendTo(select);
});
});
});
$(文档).on('change','.mySelect',函数(事件){
event.preventDefault();
$('td:nth child(11),th:nth child(11)').hide();
$('td:nth child(10),th:nth child(10)').show();
//$(this.closest(“td”).show();
var_this=$(this);
var id=_this.val();
var statusValue=id;
$.get('AssignedTo',{statusVal:statusValue},函数(响应){
var select=_this.closest(“tr”).find(“选择[name='assigned']”);
/*变量选择=$('分配')*/
select.find('option').remove();
$.each(响应、函数(索引、值){
$('').val(值).text(值).appendTo(选择);
});
});
});
< /代码> 而不是使用<代码>第n个子< /代码>,考虑使用<代码> Eq-()/<代码>它更干净,不与<代码>第n个子< /代码>的某些特殊性有关。
- 要获取“已更改”行中的所有
元素,您可以通过执行.closest(“td”)
来获取父级
,并使用选择其所有同级
- 要包含原始版本(而不仅仅是兄弟版本),您需要使用
.addBack()
- 最后,现在我们有了行中的所有单元格,请使用
eq()
选择所需的单元格
综上所述,它看起来是这样的:
//Select the 11th cell in the row
var $cell = $(this).closest('td').siblings('td').addBack().eq(10);
或者,您可以使用.closest(“tr”)
和children()
,获取父项并选择其所有子项(而不是兄弟项):
如果您试图获取
所在的
,您可以使用jQuery通过$(this.recest(“tr”))选择它代码>在更改事件中closest()
将返回与给定选择器匹配的最近祖先,因此在您的情况下,它将匹配最近的父/祖父母/等,即
。请尝试$(this).closest('tr')。find('td:nth child(11),th:nth child(11)'
-这是更改的select中最接近的tr,然后在该行中找到tds您最好使用jQuery中的.eq()
,而不是第n个子项。尝试类似于$(this.closest('tr').find('td').eq(10)的方法
或$(this).最近的('td')。同级('td')。addBack().eq(10)
-或者代替th和td的选择器,正如santi所说,您可以只在子对象上执行eq$(this).closest('tr').children().eq(10)
-eq是基于0的索引,因此10是第11个子对象。您应该真正包含HTML。堆栈上的示例通常要求是完整的和可验证的,但只有jQuery,您的问题既不是。我们几乎都在抓救命稻草,而看不到我们想要选择什么,等等。
//Select the 11th cell in the row
var $cell = $(this).closest('td').siblings('td').addBack().eq(10);
//Select the 11th cell in the row
var $cell = $(this).closest("tr").children("td").eq(10);