2017-03-17 8 views
0

私は1つの列がチェックボックスともう1つのキャプションで構成されている小さなhtmlテーブルを持っています。テーブルのデータに基づいて私はXMLファイルを生成する必要があります。すべてうまくいきますが、チェックボックスの値をtrueまたはfalseに変更すると、xmlファイルに反映されません。 checked属性はデフォルトでは固定されているようです。ここに私のコードです。私が間違っているところで私を助けてください。事前のおかげで..Htmlチェックボックスをクリックして属性を変更しないでください

function createxml() { 
 

 
    var table = $("#fruitsTable tbody"); 
 

 
    var detxml = ''; 
 

 
    detxml += '<ROOT>'; 
 
    detxml += '<Data>'; 
 

 
    var cRow = 1; 
 

 
    table.find('tr').each(function (i) { 
 
     detxml += '<Report_Details ';       
 
     detxml += 'FruitName="'  + $(this).find('td').eq(1).text() + '" '; 
 

 
     var chkval = $(this).find('td').eq(0).html(); 
 

 
     if ($(chkval).prop('checked') == true) 
 
      { 
 
       detxml += 'Visible="1"'; 
 
      } 
 
     else 
 
      { 
 
       detxml += 'Visible="0"'; 
 
      } 
 
     detxml += 'DOrder="'  + cRow + '" ';       
 
     detxml += '>'; 
 
     detxml += '</Report_Details>'; 
 

 
     cRow++;      
 
    }); 
 

 
    detxml += '</Data>'; 
 
    detxml += '</ROOT>'; 
 
    alert (detxml); 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table id="fruitsTable"> 
 
    <tbody> 
 
    <tr> 
 
     <td> <input type="checkbox" checked> </input> </td>  
 
     <td> Apple </td>  
 
    </tr> 
 
    <tr> 
 
     <td> <input type="checkbox" checked> </input> </td>  
 
     <td> Orange </td>  
 
    </tr> 
 
    <tr> 
 
     <td> <input type="checkbox"> </input> </td>  
 
     <td> Pineapple </td>  
 
    </tr> 
 
    <tr> 
 
     <td> <input type="checkbox"> </input> </td>  
 
     <td> Grapes </td>  
 
    </tr> 
 
    </tbody> 
 
</table> 
 

 
</br> 
 
<button onclick="createxml()"> Show String </button>

+1

、タグを閉じ提供していない、ただ 'コンテンツの content' – Sojtin

+0

私が試しましたそれも。その作業していない – srinivasan

+0

本当に簡単にデバッグする方法!、行ごとに行こうとconsole.logメッセージを書いて、あなたが間違っている場所を特定することができます – Nicholas

答えて

2

これはchkvalの間違ったのvalによるものです。

それは次のようになります。あなたは、.html()

HTML()メソッドのセットを使用するか、または選択された要素のコンテンツ(innerHTMLプロパティ)を返した

var chkval = $(this).find('input[type="checkbox"]'); 

。あなたが入力をincorect構文を使用している

JSFIDDLE

function createxml() { 
 

 
    var table = $("#fruitsTable tbody"); 
 

 
    var detxml = ''; 
 

 
    detxml += '<ROOT>'; 
 
    detxml += '<Data>'; 
 

 
    var cRow = 1; 
 

 
    table.find('tr').each(function(i) { 
 
    detxml += '<Report_Details '; 
 
    detxml += 'FruitName="' + $(this).find('td').eq(1).text() + '" '; 
 

 
    var chkval = $(this).find('input[type="checkbox"]'); 
 
    if ($(chkval).is(":checked")) { 
 
     detxml += 'Visible="1"'; 
 
    } else { 
 
     detxml += 'Visible="0"'; 
 
    } 
 
    detxml += 'DOrder="' + cRow + '" '; 
 
    detxml += '>'; 
 
    detxml += '</Report_Details>'; 
 

 
    cRow++; 
 
    }); 
 

 
    detxml += '</Data>'; 
 
    detxml += '</ROOT>'; 
 

 
    alert(detxml); 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<body> 
 
    <table id="fruitsTable"> 
 
    <tbody> 
 
     <tr> 
 
     <td> 
 
      <input type="checkbox"> </input> 
 
     </td> 
 
     <td> Apple </td> 
 
     </tr> 
 

 
     <tr> 
 
     <td> 
 
      <input type="checkbox"> </input> 
 
     </td> 
 
     <td> Orange </td> 
 
     </tr> 
 
     <tr> 
 
     <td> 
 
      <input type="checkbox"> </input> 
 
     </td> 
 
     <td> Pineapple </td> 
 
     </tr> 
 
     <tr> 
 
     <td> 
 
      <input type="checkbox"> </input> 
 
     </td> 
 
     <td> Grapes </td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
    </br> 
 
    <button onclick="createxml()"> Show String </button> 
 

 
</body>

+0

@srinivasan答えが正しい場合は、これを正しいものとしてマークすることができます –

+0

それは動作します..ありがとう男.... – srinivasan

+0

これを正解としてマークできます –

関連する問題