0

いくつかのテーブルがあり、 http で始まる場合、テーブルのセルの内容を URL として作成しようとしています。私が試したコードは次のとおりです。問題は、URLではなくハイパーリンクになっていることです(例:表のセルのコンテンツがhttps://www.google.comのテキストである場合、最終的なリンクは "https://myapplicationlink/www.google.com".理由を教えてください。

 var tables=document.getElementsByTagName("TABLE");
 for (x=0;x<tables.length;x++)
{
 var rows=tables[x].getElementsByTagName('TR');
 for (i=0; i<rows.length; i++) 
  {
    var cells=rows[i].getElementsByTagName('td');
    for (z=0;z<cells.length;z++)
    {


 //code for styling etc which i removed

 var hyp;var c;
      c=cells[z].innerHTML;
     if (c.indexOf("http") >= 0) {
         hyp="<a href=" + cells[z].innerHTML  +"</a>";
      c=hyp;
   cells[z].innerHTML = c;

}


 }


  }
 }
4

2 に答える 2

0

説明しているバグが発生する理由はわかりませんが、コードで href タグを閉じていません...

hyp="<a href=" + cells[z].innerHTML  +"</a>";

する必要があります

hyp="<a href=\"" + cells[z].innerHTML  +"\">some text here</a>";

また、href をセルに描画するのではなく、このようにセルをクリック可能に変換できます。

 var hyp;var c;
  c=cells[z].innerHTML;
 if (c.indexOf("http") >= 0)          
   cells[z].onclick = (function(url){self.location.href = url})(c);
于 2013-10-23T18:40:09.137 に答える