onclick事件的转义参数不起作用

时间:2015-12-08 04:00:34

标签: javascript html onclick innerhtml

我正在努力将动态表格放到一个html页面中,每个表格行的第一列都有一个按钮,用于显示项目的描述(它是一个项目列表)。

然而,当使用onclick事件设置innerhtml时,我无法触发警报。当我想调用另一个JS函数来调用警报并尝试在我的onclick函数中传递参数时,它不会做什么,当尝试时逃避报价没有任何作用。

的Javascript

function showAuctionList(auctionList){
  var table = document.getElementById("myTableData");

  for(var i = 0 ; i< auctionList.length ; i++){
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var description = auctionList[i].itemDesc;

    row.insertCell(0).innerHTML= '<input type="button" value = "Show Description" onclick="showDescription( description)">';
    row.insertCell(1).innerHTML= auctionList[i].auctionId;
    row.insertCell(2).innerHTML= auctionList[i].sellId;
    row.insertCell(3).innerHTML= auctionList[i].startDate;
    row.insertCell(4).innerHTML= auctionList[i].endDate;
    row.insertCell(5).innerHTML= auctionList[i].buyNow;
    row.insertCell(6).innerHTML= auctionList[i].minBid;
    row.insertCell(7).innerHTML= auctionList[i].actualBid;
    row.insertCell(8).innerHTML= auctionList[i].itemCat;
    row.insertCell(9).innerHTML= auctionList[i].itemName;
    row.insertCell(10).innerHTML= auctionList[i].itemDesc;
  }
}

function showDescription(desc){
  alert(desc);
}

HTML

  <div id="search" style="display:none">
  <button id="searchButton" onclick="


google.script.run.withSuccessHandler(showAuctionList).getAuctionList()"> Search </button> <br>
  <div id="mydata">
    <table id="myTableData"  border="1" cellpadding="2">
      <tr>
        <td>&nbsp;</td>
        <td><b>Auction ID</b></td>
        <td><b>Seller ID</b></td>
        <td><b>Start Date</b></td>
        <td><b>End Date</b></td>
        <td><b>Buy now option</b></td>
        <td><b>Min Bid</b></td>
        <td><b>Actual Bid</b></td>
        <td><b>Category</b></td>
        <td><b>Item Name</b></td>
        <td><b>Description</b></td>
     </tr>
    </table>
    &nbsp;<br/>
</div>

gs函数调用:

 function doget(e){
   ...
   return HtmlService.createTemplateFromFile('Main').evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
 }

这可以转义,该描述可以作为一个参数,还是有关该问题的解决方法?其余的工作完全没问题

2 个答案:

答案 0 :(得分:2)

试试这个。由于描述似乎是string值,因此surround需要qoutes。{/ p>

row.insertCell(0).innerHTML = '<input type="button" value = "ShowDescription"  onclick="showDescription(\'' + description + '\');">';

答案 1 :(得分:0)

如果使用此代码,则无需转义:

row.insertCell(0).innerHTML= '<input type="button" value = "Show 
Description" onclick="showDescription(this.getAttribute(\'description\'))">';
row.cells[0].firstChild.setAttribute('description', description);