2014-01-27 42 views
0

我正在使用jquery插件,它使用户能够添加动态表单属性当时我想分配动态ID基于表行数,因为表单元素存在于b/w table tr td。 这里是我的代码生成动态TR的如何通过jQuery为动态表单元素分配动态ID

<script> 

function onClick(e) { 
    var element = e.target.querySelector('[contenteditable]'), row; 

    element && e.target != document.documentElement && e.target != document.body && element.focus(); 

    if (e.target.matchesSelector('.add')) { 
     var rc = $('.inventory tbody tr').length; //rcount 
        document.querySelector('table.inventory tbody').appendChild(generateTableRow(rc)); 
    } 
    else if (e.target.className == 'cut') { 
     row = e.target.ancestorQuerySelector('tr'); 

     row.parentNode.removeChild(row); 
    } 


} 

function generateTableRow(x) { 
     var emptyColumn = document.createElement('tr'); 
     var now=Number(x)+1; 
     alert(now);  
emptyColumn.innerHTML = '<td><a class="cut">-</a><span contenteditable><input type="text" id="now" name="products[]" onkeydown=display(now,this.value)></span></td>' + 
     '<td><span contenteditable></span></td>' + 
     '<td><span data-prefix>$</span><span contenteditable>0.00</span></td>' + 
     '<td><span contenteditable>0</span></td>' + 
     '<td><span data-prefix>$</span><span>0.00</span></td>'; 

    return emptyColumn; 
} 

function display(id,value) 
{ 
alert(id); // here it was displaying as object node list.it was not showing its id which was a number. 
} 
</script> 

请帮我弄一个特定的文本字段的确切ID。

回答

0

Now是可变....

当你在一个内嵌的JavaScript,你应该照顾引号的使用变量...

使用此代码....

function generateTableRow(x) { 
    var emptyColumn = document.createElement('tr'); 
    var now=Number(x)+1; 
    emptyColumn.innerHTML = '<td><a class="cut">-</a><span contenteditable><input type="text" id="'+now+'" name="products[]" onkeydown=display(this)></span></td>' + 
          '<td><span contenteditable></span></td>' + 
          '<td><span data-prefix>$</span><span contenteditable>0.00</span></td>' + 
          '<td><span contenteditable>0</span></td>' + 
          '<td><span data-prefix>$</span><span>0.00</span></td>'; 
        return emptyColumn; 
} 


function display(field){ // just pass the element 
    alert(field.id+" , "field.value); // this will give id and value 
}