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://" + host + 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 回答