2009-05-03 2 views
1

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

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++; 
} 

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

Благодаря

+0

Пожалуйста, объясните, что вы подразумеваете под «сделать столбцы в виде ссылки». – brianpeiris

+0

значения в столбцах таблицы должны отображаться как ссылки, которые я могу перенаправить на расположение soem. – 2009-05-03 07:12:52

ответ

3

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

newCell.innerHTML= fname[j]; 

в

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

где whatever переменная холдинг соответствующую строку.

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

+0

его не извлекаемые значения fname.its, показывающие + fname [j] + in output – 2009-05-03 07:00:52

+0

Если вы имеете в виду, что скрипт выдает буквально «+ fname [j] +» в ваш документ, тогда у вас есть ошибка цитирования. Обратите внимание, где одиночные кавычки: они записывают строковые литералы. – Anonymous

+0

+1 для правильного угадывания цели OP! ;-) – Cerebrus

7

Как уже отмечалось, совершенно неясно, что вы подразумеваете под «сделать столбцы как ссылку». Однако мы, как сообщество, привыкли делать догадки о реальной проблеме и предлагать решение, основанное на этом предположении. По мере того, как мы получаем опыт в решении все более неясных вопросов, наше умение 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 предложил.

+0

Это менее подверженный ошибкам метод, если содержимое якоря является простым текстом; вы получаете хорошие предупреждения, когда что-то не так, вместо того, чтобы иметь дело с типографиями в плохую разметку. – Anonymous

1

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

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); 
Смежные вопросы