JavaScript/jqueryhtml元素append';t获取父级的属性-无PHP版本
我使用jQueryAfter方法将HTML行附加到现有行,但父行的属性不会被继承。我做错了什么JavaScript/jqueryhtml元素append';t获取父级的属性-无PHP版本,javascript,jquery,attributes,append,Javascript,Jquery,Attributes,Append,我使用jQueryAfter方法将HTML行附加到现有行,但父行的属性不会被继承。我做错了什么 <html> <head> <title>AppendTest_min</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> </head> <body
<html>
<head>
<title>AppendTest_min</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body bgcolor="Teal">
<div class="container">
<div class="form-group">
<div class="table-responsive">
<form name="budgetform" id="budgetform">
<table class="table" id="spreadsheet">
<tr id="row1">
<td id="inputtd">
<input type="text" id="descr1" name="descr[]" size="25" class="inputrow" style="font-weight:bold; background-color:Wheat">
<input type="text" id="dueday1" name="dueday[]" style="text-align: center; background-color:Ivory" size="6" class="inputrow">
<button type="button" name="add" id="add1" style="font-weight:bold; background-color:AntiqueWhite; font-size:7px" class="btn_add">+</button>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function() {
$(document).on('click', '.btn_add', function() {
var button_id = $(this).attr("id");
// alert("HELLO");
// alert(button_id);
// get number part of ID
var nLen = button_id.length
var numsize = nLen - 3;
var nIdx = button_id.substr(3, 2);
var sIdx = nIdx.toString();
// alert(sIdx);
var sRowRef = "#row";
var sAddToThisRowRef = sRowRef + sIdx;
nIdx++;
sIdx = nIdx.toString();
var sRemIdx = "rem" + sIdx;
var sAddIdx = "add" + sIdx;
// var sNewRow = '<tr id="row'+nIdx+'"><td><input type="text" id="descr'+nIdx+'" name="descr[]" placeholder="Enter New Description" size = "25" class="inputrow" style="font-weight:bold; background-color:Wheat"/>';
var sNewRow = '<tr id="row' + nIdx + '"><td><input type="text" id="descr' + nIdx + '" name="descr[]" placeholder="Enter New Description" size = "25" class="inputrow" style="font-weight:bold; background-color:Wheat"/>';
sNewRow = sNewRow + '<input type="text" id="duedate' + nIdx + '" name="dueday[]" placeholder="Date Day" size = "6" class="inputrow"; background-color:Ivory" />';
sNewRow = sNewRow + '<button type="button" name="add" id=' + sAddIdx + ' style="font-weight:bold; background-color:AntiqueWhite; font-size:7px" class="btn_add">+</button></tr>';
$(sAddToThisRowRef).after(sNewRow);
// $(sAddToThisRowRef).append(sNewRow);
var sJustAddedRowRef = sRowRef + sIdx;
});
});
</script>
附加测试
+
$(文档).ready(函数(){
$(文档).on('click','btn_add',函数(){
var按钮_id=$(this.attr(“id”);
//警惕(“你好”);
//警报(按钮标识);
//获取ID的数字部分
var nLen=按钮id长度
var numize=nLen-3;
var nIdx=按钮id.substr(3,2);
var sIdx=nIdx.toString();
//警报(sIdx);
var sRowRef=“#行”;
var sAddToThisRowRef=sRowRef+sIdx;
nIdx++;
sIdx=nIdx.toString();
var sRemIdx=“rem”+sIdx;
var sAddIdx=“添加”+sIdx;
//var sNewRow='';
var sNewRow='';
sNewRow=sNewRow+'在您的场景中使用clone with insertAfter。我认为它最适合您的操作
例如:
$("#car2").clone().insertAfter("div.car_well:last");
或者您也可以使用并尝试以下方法:
$("div[id^='car']:last").after($('#car2').clone());
你看到的行为是因为
HTML中的
和
标记之间存在空格,因此两个输入字段和第一行中的按钮之间会出现一个空格。但JavaScript代码中构造的HTML中不存在空格,因此后续行中的控件之间没有空格
解决方案是在代码构造控件时在控件之间添加一个空格(
)(请参见下面的第2行和第3行):
var sNewRow='';
sNewRow=sNewRow+'稍微短一点的方法:
var sNewRow = '<tr id="row' + nIdx + '"><td><input type="text" id="descr' + nIdx + '" name="descr[]" placeholder="Enter New Description" size = "25" class="inputrow" style="font-weight:bold; background-color:Wheat"/>';
sNewRow = sNewRow + ' <input type="text" id="duedate' + nIdx + '" name="dueday[]" placeholder="Date Day" size = "6" class="inputrow"; background-color:Ivory" />';
sNewRow = sNewRow + ' <button type="button" name="add" id=' + sAddIdx + ' style="font-weight:bold; background-color:AntiqueWhite; font-size:7px" class="btn_add">+</button></tr>';