1

JSONObject を返すアプリケーションがあります。以下のコードを使用して、JSON オブジェクトからデータを取得できます。


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <head>
    <style type="text/css">


table, td, th
{
border:1px collapse black;
font-family:Arial;
font-size :small;
}
th
{
background-color:green;
color:white;
}
.hideMe
{
    /*display : none;*/
    /*visibility: hidden;*/
}

</style>
   <script type="text/javascript" language="jscript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js">   
   </script>
   <script type="text/javascript" language="javascript">
           var host = "somehost";
           var mystr = "http://"+ host  +"/rest/bpm/wle/v1/exposed/process";   // use get for this
           var ulink = "";

           $(document).ready(function () {
           $.get(mystr, function (data) {
                   var obj = JSON.parse(data);
               var thtml = "<table id='proctable'>";

                   for (i = 0; i < obj.data.exposedItemsList.length; i++) {
                       ulink = "http://" + host + obj.data.exposedItemsList[i].startURL;
                       thtml = thtml + "<tr><td><a onclick='my_function()' href='javascript:void(0)'>" + obj.data.exposedItemsList[i].display + "</a></td><td id='linkcell' class='hideMe'>" + ulink + "</td></tr>";                   
               }
               thtml = thtml + "</table>";
               document.getElementById('contentdiv').innerHTML = thtml;
           });
       });

       //javascript 
       my_function = null;

       //jquery
       $(function () {
           function generateBPDInstance() {
               $.post(ulink, function (taskdata) {
                   var tobj = JSON.parse(taskdata);
                   alert(tobj.data.tasks[0].name);
                   alert(tobj.data.tasks[0].tkiid);                  
               });
           }
           my_function = generateBPDInstance;
           ulink = "";
       })
`

   </script>
</head>
<body>
 <form name="myform">           
            <div id="contentdiv">
            <table id="proctable">
            </table>
            </div>
        </form>
</body>
</html>

上記の html は、返された値のリストを示すテーブルを作成します。また、ハイパーリンクの rowIndex を取得し、column2 の値を関数 generateBPDInstance に渡します。

私は HTML と Jquery が苦手です。javascript で作成された HTML テーブルの rowIndex を取得する方法を教えてください。

前もって感謝します。

4

2 に答える 2

0

簡単な方法は次のとおりです。

テーブルの建物をこれに変更します

for (i = 0; i < obj.data.exposedItemsList.length; i++) { ulink = "http://" + ホスト + obj.data.exposedItemsList[i].startURL; thtml = thtml + "" + obj.data.exposedItemsList[i].display + "" + ulink + "";

function my_function(e){ //e は行インデックスであり、document.getLementById("proctable").rows[e]; を呼び出した場合。これにより、完全な行が得られます。

}

--これは簡単な方法です。ツリーをトラバースして取得したい場合は、常に親ノードを持っているか、jquery $(object).parent() を使用してハイパーリンクの親を取得してトラバースできます。

于 2012-08-30T07:03:48.010 に答える
0

問題は、「column2 の値を関数 generateBPDInstance に渡す」ことです。テーブルの生成中にすでに渡していないのはなぜですか?

for (i = 0; i < obj.data.exposedItemsList.length; i++) {
   ulink = "http://" + host + obj.data.exposedItemsList[i].startURL;
   thtml = thtml + "<tr><td><a onclick='my_function('" + ulink + "')' href='javascript:void(0)'>" + obj.data.exposedItemsList[i].display + "</a></td><td id='linkcell' class='hideMe'>" + ulink + "</td></tr>";
 // ------------------------------------------------------^ pass the value
}

関数にパラメーターを追加するgenerateBPDInstance

function generateBPDInstance(ulink) {
   //--------------------------^----
   $.post(ulink, function (taskdata) {
      var tobj = JSON.parse(taskdata);
      alert(tobj.data.tasks[0].name);
      alert(tobj.data.tasks[0].tkiid);                  
   });
}
于 2012-08-30T07:04:32.457 に答える