2017-08-25 2 views
-1

私は助けが必要です。私は以下を把握しようとしています:テーブル内の要素を参照する方法

<script> 
var ct = 1; 
function new_bank() 
{ 
ct++; 
var div1 = document.createElement('div'); 
div1.id = ct; 
// bank to delete extended form elements 
var delLink = '<a href="javascript:delIt('+ ct +')">delete</a>'; 

div1.innerHTML = 
document.getElementById("newbanktpl").innerHTML + delLink; 
document.getElementById('newbank').appendChild(div1); 
} 
// function to delete the newly added set of elements 
function delIt(eleId) 
{ 
d = document; 
var ele = d.getElementById(eleId); 
var parentEle = d.getElementById('newbank'); 
parentEle.removeChild(ele); 
findTotalA(); 
} 
</script> 


<!-- Template --> 
<div id="newbanktpl"> 
<table> 
<tr> 
    <td></td> 
    <td><textarea name="BankAccount[]"></textarea></td> 
    <td><input type="number" onblur="findTotalA()" name="Value[]"/></td> 
    <td><input type="number" name="Ownership[]" /></td> 
    <td>**ADD DELETED LINK HERE** </td> 
</tr> 
</table> 

を私は後にしていますが、テーブル内にあると削除機能である - 現時点では削除機能はnewbanktpl後で、私は内にしたいです...最後に削除されたリンクはこちら

答えて

0

あなたのIDにIDを追加しようとすると、JSで使用できます。

あなたのHTMLで

<table> 
    <tr> 
     ... 
     <td><a href="#" id="delete">delete</a></td> 
    </tr> 
</table> 
あなた scriptタグで

... 
document.getElementById("delete").href="javascript:delIt('+ ct +')"; 
... 

全体の機能は、次のようになります

var ct = 1; 

function new_bank() { 
    ct++; 
    var div1 = document.createElement('div'); 
    div1.id = ct; 

    document.getElementById("delete").href="javascript:delIt('+ ct +')"; 
    document.getElementById('newbank').appendChild(div1); 
} 

P.S.私はなぜあなたがそのような短い名前で変数を呼び出すことによってコンピュータからバイトを保存しようとしているのかわからない、それはあなたの時間のウエストです、それはコンピュータに何の違いはありませんが、それはあなたのコードを理解するのが難しくなります。

+0

このdoesntのは、テーブル内の他のボックスを追加するよう

  • を挿入し、最後の銀行がクローンを割り当てた後、クローンを挿入: ​​ ​​<入力タイプ= "numbe R」のonblur = "findTotalA()" 名= "値[]" /> ​​の それは単に一例を更新し、削除テキスト – Cos

  • +0

    を追加答えに。 –

    +0

    私はあなたが私のためにそれを修正することができる間違った順序で次のことを知っています... @rabbishuki 'var ct = 1; function new_bank() { \t ct ++; \t var div1 = document。createElement( 'div'); \t div1.id = ct; \t //拡張フォーム要素を削除するバンク \t var delLink = 'delete'; \t \t div1.innerHTML = document.getElementById( 'newbanktpl')。innerHTML + delLink; \t document.getElementById( 'newbank')。appendChild(div1); \t document.getElementById( "delete").href = "javascript:delIt( '+ ct +')"; } ' – Cos

    0
    • はテンプレートにテンプレート
    • 更新のdivのID
    • がリンクにそのdata-delete属性を与えるリンクのonclick
    • delIt機能を割り当てるクラス
    • クローンのリンクを与えます削除するIDを参照します。
    • 新しい「最後の銀行」

    var ct = 1; 
     
    var tmpl = document.getElementById("newbanktpl"); 
     
    var lastBank = tmpl; 
     
    
     
    function new_bank() { 
     
        var clone = tmpl.cloneNode(true); 
     
        clone.id = "bank_" + ct; 
     
        ct++; 
     
    
     
        var delLink = clone.querySelector(".delete_link"); 
     
        delLink.setAttribute("data-delete", clone.id); 
     
        delLink.onclick = delIt; 
     
    
     
        lastBank.parentNode.insertBefore(clone, lastBank.nextSibling); 
     
        lastBank = clone; 
     
    } 
     
    
     
    // function to delete the newly added set of elements 
     
    function delIt() { 
     
        var id = this.getAttribute("data-delete"); 
     
        var ele = document.getElementById(id); 
     
        if (ele === lastBank) { 
     
        lastBank = ele.previousElementSibling; 
     
        } 
     
        ele.parentNode.removeChild(ele); 
     
        // findTotalA(); 
     
    }
    #newbanktpl { 
     
        display: none; 
     
    }
    <!-- Template --> 
     
    <div id="newbanktpl"> 
     
        <table> 
     
        <tr> 
     
         <td></td> 
     
         <td><textarea name="BankAccount[]"></textarea></td> 
     
         <td><input type="number" onblur="findTotalA()" name="Value[]" /></td> 
     
         <td><input type="number" name="Ownership[]" /></td> 
     
         <td><a class="delete_link" href="#">delete</a></td> 
     
        </tr> 
     
        </table> 
     
    </div> 
     
    
     
    <button onclick="new_bank()">New Bank</button>

    +0

    これは私のために働いているようです。私はちょうど私のコードに追加しようとしました。 jQueryのリンクが動作するために必要なものは何ですか? – Cos

    +0

    ヌルのプロパティ 'cloneNode'を読み取ることができません – Cos

    +0

    次に、エレメントが存在する前にコードを実行しています(おそらくページの上部にあります)。 jQueryは必要ありません。 – spanky

    関連する問題