Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/jqueryhtml元素append';t获取父级的属性-无PHP版本_Javascript_Jquery_Attributes_Append - Fatal编程技术网

JavaScript/jqueryhtml元素append';t获取父级的属性-无PHP版本

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

我使用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 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 + '&nbsp;<input type="text" id="duedate' + nIdx + '" name="dueday[]" placeholder="Date Day" size = "6" class="inputrow"; background-color:Ivory" />';
sNewRow = sNewRow + '&nbsp;<button type="button" name="add" id=' + sAddIdx + ' style="font-weight:bold; background-color:AntiqueWhite; font-size:7px" class="btn_add">+</button></tr>';