2016-05-10 43 views
1

傢伙,我有一個包含文本和按鈕,我想要的是一列時,點擊該按鈕上的文字改變了。這裏是我的代碼不能在JavaScript中設置屬性「的innerHTML」空的

var count = 0; 
$(document).ready(function() { 
     $("#jqGrid").jqGrid({ 
     data: data.rows, 
     datatype: "local", 
     styleUI: "Bootstrap", 
     colModel: [ 

      { 
      label: 'Customer ID', 
      name: 'CustomerID', 
      width: 180, 
      editable: true, 
      edittype: "custom", 
      id: "CustomerID", 
      editoptions: { 
       custom_element: function(value, options) { 
       var parts = value.split(' '); 
       var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] + 
        '" /><input type="button" size="5" value="..." onclick="setText();"/></div>'; 

       count++; 

       // return DOM element from jQuery object 
       return $(elemStr)[0]; 
       }, 
       custom_value: function(elem) { 
       var inputs = $("input", $(elem)[0]); 
       var first = inputs[0].value; 
       return first; 
       } 
      } 
      }, 

     ], 

     }); 
    }); 

     function setText() { 
     document.getElementById("txt_" + count).innerHTML = "hey"; 
     } 

爲什麼它給了我這種例外? .. plz幫助.. btw我是初學者

+0

是你確定你有'id =「text_0」'元素? – jcubic

+0

'txt_ + count'not'text_0' –

+0

放了一個調試器;在setText(){}方法的第一行中,在瀏覽器中打開一個控制檯(f12),並檢查'​​txt_'是否存在 – fdfey

回答

0

setText內的計數是未定義的。

第一變化的onclick按鈕的功能,通過計數變量

var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] + 
        '" /><input type="button" size="5" value="..." onclick="setText(' + count + ');"/></div>'; 

然後接受數作爲參數

function setText(count) { 
     document.getElementById("txt_" + count).innerHTML = "hey"; 
     } 
+0

仍然相同:( –

+0

檢查元素是否正確生成,即輸入的ID是分別設置txt_0,txt_1和onclick調用,分別爲setText(0),setText(1) –

0

你可以通過計數功能:

var count = 0; 
$(document).ready(function() { 
     $("#jqGrid").jqGrid({ 
     data: data.rows, 
     datatype: "local", 
     styleUI: "Bootstrap", 
     colModel: [ 

      { 
      label: 'Customer ID', 
      name: 'CustomerID', 
      width: 180, 
      editable: true, 
      edittype: "custom", 
      id: "CustomerID", 
      editoptions: { 
       custom_element: function(value, options) { 
       var parts = value.split(' '); 
       var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] + 
        '" /><input type="button" size="5" value="..." onclick="setText(' + count + ');"/></div>'; 

       count++; 

       // return DOM element from jQuery object 
       return $(elemStr)[0]; 
       }, 
       custom_value: function(elem) { 
       var inputs = $("input", $(elem)[0]); 
       var first = inputs[0].value; 
       return first; 
       } 
      } 
      }, 

     ], 

     }); 
    }); 

     function setText(count) { 
     document.getElementById("txt_" + count).innerHTML = "hey"; 
     } 
相關問題