Создать ссылку в HTML-таблице с помощью JavaScript - PullRequest
2 голосов
/ 03 мая 2009

Я использую следующий код для динамического добавления столбцов в HTML-таблицу:

var tblHeadObj = window.opener.document.getElementById("maintable").tHead;
var j=0;
while(j < fname.length)
{ 
  if(tblHeadObj != null) 
  {
    for(var h = 0; h < tblHeadObj.rows.length; h++) 
    {
      var newTH = window.opener.document.createElement('th');

      tblHeadObj.rows[h].appendChild(newTH);
      //newTH.innerHTML='[th]row:'+h+'cell:'+(tblHeadObj.rows[h].cells.length-1)
    }
  }
  var tblBodyObj = window.opener.document.getElementById("maintable").tBodies[0];
  //for(var i = 0; i < tblBodyObj.rows.length; i++) {
  var newCell=tblBodyObj.rows[0].insertCell(-1);
  var newCell=tblBodyObj.rows[0].insertCell(-1);
  // newCell.innerHTML = (tblBodyObj.rows[0].cells.length - 1)
  newCell.innerHTML=  fname[j];
  j++;
}

Теперь я хочу сделать столбцы ссылками. Как я могу это сделать?

Спасибо

Ответы [ 3 ]

9 голосов
/ 03 мая 2009

Как уже отмечали другие, совершенно неясно, что вы подразумеваете под "сделать столбцы ссылками". Тем не менее, мы, как сообщество, привыкли гадать о реальной проблеме и предлагать решение, основанное на этом предположении. По мере того, как мы приобретаем опыт решения все более и более неясных вопросов, наши навыки ESP становятся более отточенными.

Похоже, что вы создаете таблицу HTML с помощью методов DOM. Я предполагаю, что вы хотите создать ссылку в созданной ячейке таблицы, и вот мое предложение:

Используйте тот же метод createElement для создания любых необходимых вам элементов. Например, можно создать ссылку (якорь) со следующим кодом:

var link = document.createElement("a");
link.setAttribute("href", "http://www.microsoft.com")
link.className = "someCSSclass";
// For IE only, you can simply set the innerText of the node.
// The below code, however, should work on all browsers.
var linkText = document.createTextNode("Click me");
link.appendChild(linkText);

// Add the link to the previously created TableCell.
newCell.appendChild(link);

Кроме того, вы также можете установить innerHTML для TableCell, как предложил @Anonymous.

3 голосов
/ 03 мая 2009

Если вы пытаетесь поместить содержимое ячейки в якорь, то один из способов - изменить

newCell.innerHTML=  fname[j];

до

newCell.innerHTML=  '<a href="'+whatever+'">'+fname[j]+'</a>';

где whatever - переменная, содержащая соответствующую строку.

Помните, что все содержимое fname[j] является встроенным (например, не таблицы или блоки, такие как div, заголовки, формы - но с входными данными формы все в порядке), иначе большинство браузеров преждевременно закроют привязку. При необходимости вы можете поместить привязку только вокруг частей содержимого ячейки, но самый простой способ сделать это будет зависеть от содержимого.

1 голос
/ 31 декабря 2009

Это все хорошо, но мне нужно изображение в ссылке, вот код:

  cell[k] = document.createElement('td');
   var link = document.createElement('a');
            link.setAttribute('href', "http://www.ilovethismusic.com");
            link.setAttribute('target', "_blank");

            var newimg = document.createElement('img');
            newimg.src = "http://www.ilovethismusic.com/Views/Images/bg_header.jpg";
            newimg.alt = "imageMissing";
            newimg.width = "95";
            newimg.height = "45";
            newimg.border = "0";

            link.appendChild(newimg);




        cell[k].appendChild(link);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...