Javascript jqQuery查找单元格值,如果存在则更改单元格,如果不存在则添加新行
任何帮助都将不胜感激 我试图实现的是,当输入到代码框中的数字/文本搜索表时,如果找到,则将数量增加1,如果未找到,则将添加一个新行,并按1计算no列 我已经有了一些基本的jQuery代码Javascript jqQuery查找单元格值,如果存在则更改单元格,如果不存在则添加新行,javascript,jquery,html-table,Javascript,Jquery,Html Table,任何帮助都将不胜感激 我试图实现的是,当输入到代码框中的数字/文本搜索表时,如果找到,则将数量增加1,如果未找到,则将添加一个新行,并按1计算no列 我已经有了一些基本的jQuery代码 <input type="text" style="width: 200px" id="code" name="code" /> <input id = "btnSubmit" type="submit" value="Release"/> <table> <thead
<input type="text" style="width: 200px" id="code" name="code" />
<input id = "btnSubmit" type="submit" value="Release"/>
<table> <thead>
<tr>
<th>No</th>
<th>Code</th>
<th>Qty</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>4444</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>5555</td>
<td>1</td>
</tr>
<tr>
<td>3</td>
<td>6666</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>7777</td>
<td>1</td>
</tr>
</tbody>
</table>
我已经使用jQuery创建了一个示例代码。我花了大约10分钟的时间才弄明白你想要实现什么,但我希望我能很好地理解你: HTML端:
<input type="text" style="width: 200px" id="code" name="code" />
<input id = "btnSubmit" type="submit" value="Release"/>
<table> <thead>
<tr>
<th>No</th>
<th>Code</th>
<th>Qty</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>4444</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>5555</td>
<td>1</td>
</tr>
<tr>
<td>3</td>
<td>6666</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>7777</td>
<td>1</td>
</tr>
</tbody>
</table>
不
代码
数量
1.
4444
1.
2.
5555
1.
3.
6666
1.
4.
7777
1.
还有我们的JavaScript:
$(document).ready(function() {
var found = false;
$("input#btnSubmit").on("click", function() {
var search_val = $("input#code").val();
$("tr").each(function() {
var obj = $(this);
obj.find("td").each(function() {
if(parseInt($(this).html()) == parseInt(search_val))
{
obj.find("td:nth-of-type(3)").html(parseInt(obj.find("td:nth-of-type(3)").html()) + 1);
found = true;
}
});
})
if(found == false)
{
$("table").append("<tr><td>"+($("tr").length)+"</td><td>"+search_val+"</td><td>1</td></tr>");
}
found = false;
});
});
$(文档).ready(函数(){
var=false;
$(“输入#btnSubmit”)。在(“单击”,函数()上){
var search_val=$(“输入代码”).val();
$(“tr”)。每个(函数(){
var obj=$(本);
obj.find(“td”).each(函数(){
if(parseInt($(this.html())==parseInt(search_val))
{
obj.find(“类型(3)的td:n次方)”).html(parseInt(obj.find(“类型(3)的td:n次方)”).html()+1);
发现=真;
}
});
})
if(found==false)
{
$(“表”).append(“+($(“tr”).length)+“+search_val+“1”);
}
发现=错误;
});
});
这里是JSFIDLE:我将一个JS代码放在一起,并将JS代码复制到这里。我试着让它尽可能对初学者友好
$("#btnSubmit").on("click", function(){
numRows = $("tr").length;
for(var i=1 ; i<numRows ; i++){
var code = $("tr:nth-child(" + i + ") td:nth-child(2)").html();
var qty = $("tr:nth-child(" + i + ") td:nth-child(3)").html();
if(code == $("#code").val()){
$("tr:nth-child(" + i + ") td:nth-child(3)").html(parseInt(qty) + 1);
return true;
}
}
$("tbody").append("<tr><td>" + numRows + "</td><td>" + $("#code").val() + "</td><td>1</td></tr>");
return true;
});
$(“#btnsupmit”)。在(“单击”,函数(){
numRows=$(“tr”)。长度;
对于(var i=1;i您是否希望输入框条目与“否”或“代码”匹配以触发增量“数量”?对不起,不,这只是一个不断递增的数字,我希望它与代码匹配,从而触发数量增加1。感谢您的快速回复!!!在数量递增中,如果它不在表中,则不会添加新行。提前感谢-Danny我忘了这么做。很抱歉,我再次为您创建了一个工作版本:/Perfect!!!谢谢正如您所说,一百万也很有帮助,因为我将在将来添加到这个表中。非常感谢。Paul,如果表id为id=“example”,我需要更改什么?为保持此功能正常工作,请注意。您不必更改任何内容,表ID根本不被引用。只有在标记中有多个表时,您才会遇到此问题。如果是这样,则需要将表ID预先添加到当前jQuery选择器,如:“tr”到“#example tr”或“tr:nth child(i)”td:nth child(2)”到“#示例tr:nth child(i)td:nth child(2)”。是的,我将使用多个表,我在询问之前绑定了您的解决方案,它不会增加数量,只是每次追加一个新行orry,修复了它,它正在工作我缺少numRows=$(“tr”).length;。再次感谢。