2014-10-07 21 views
0

我試圖解析不在我的html文件中的表,我從一個字符串中獲取一個完整的HTML文件,然後將其放入我自己的div中。將id應用於不在html代碼中的td元素

我已經能夠使用CSS對其進行修改,但是jQuery或Javascript似乎都能夠與表格一起玩。

我得到這樣的內容:

$(document).ready(function(){ 
    $.get("untouchable-url-on-my-host",function(data,status){  
     $("#content").html(data); 
    }); 
}); 

我格內容總是出現在字體代碼:

<div id="content"></div> 

這對DIV產生一個巨大的表,我想解析其內容。

我認爲是解析原始的字符串,以替換文本:

'td class' 

'td id="number" class' 

但我確實需要一個循環,它的非重複,相同的IDS把戲,我無法做到這一點。

有什麼想法?

+0

請澄清你的替換文本中的'class' – 2014-10-07 08:08:14

回答

1

您可以將HTML字符串轉換成一個jQuery對象,像這樣:

var jqueryObject = $(data); 

有了這個對象可以爲例如改變TD的。這裏是你將如何改變與一類=「類」屬性的TD並設置該元素有一個id =「號」爲例:

jqueryObject.find('td.class').attr('id', 'number'); 

一旦你有任何修改你的HTML做你只需添加jQuery對象到您的DOM像這樣:

$('#content').append(jqueryObject); 
+0

感謝您的回覆,我試過但不行,我得到了同樣的結果,它只是不替換任何文本 – Pamplinas 2014-10-07 08:06:21

+0

此代碼假設您正在使用'class'作爲一個類,如果你想改變所有td的id = number,那麼你必須將'td.class'-string改爲'td' – 2014-10-07 08:10:03

0

我已經使用這個作爲測試目的:

  var temp = '<table><tr><td class="yourclass">sdfdf</td><td class="yourclass">sds</td></tr></table>'; 

      var occurence_count = temp.match(/td class/g).length; 
      for(i = 1; i<=occurence_count; i++){ 
          temp = temp.replace(new RegExp('td class', ''), 'td id="my_cusom_id-' + i+'" class'); 
      } 

      console.log(temp); 

而且因爲它應該是顯示結果。 在我的情況下,我得到了occurence_count = 2

或者你可以用它張貼作爲一個答案在修改的方式解決

  $.get("untouchable-url-on-my-host",function(data,status){ 
      var $data = $(data); 
      $data.find('td').each(function(){ 
       $(this).attr('id', 'my_custom_id_'+ $(this).index()); 
      $("#content").append($data); 
      }); 
      } 

你可以試試這個解決方案

  $.get("untouchable-url-on-my-host",function(data,status){  
      var temp = data; 
      var occurence_count = temp.match(/td class/g).length; 
      for(i = 1; i<=occurence_count; i++){ 
       temp = temp.replace(new RegExp('td class', ''), 'td id="my_custom_id-' + i+'" class'); 
      } 
       $("#content").html(temp); 

      }); }); 
+0

剛剛嘗試過,結果相同,它不能代替一。 – Pamplinas 2014-10-07 08:13:03

+0

你可以發佈一個td的HTML ..這將有助於瞭解模式 – 2014-10-07 08:25:58

+0

我編輯了答案和test.It的作品。 – 2014-10-07 08:32:50

0

確定它的工作,這裏的代碼:

$(document).ready(function(){ 
$.get("untouchable-url-of-my-host",function(data,status){   

    var $data = $(data); 
     $data.find('td').each(function(){ 
      $(this).attr('id', 'my_custom_id_'+ $(this).index()); 
     $("#content").append($data); 


     });    
}); 
}); 

這裏的結果:

<table class="status" width="100%" border="0"> 
<tbody> 
<tr> 
<tr> 
<td id="my_custom_id_0" class="statusEven"> 
<td id="my_custom_id_1" class="status"> 
<td id="my_custom_id_2" class="status">CRITICAL</td> 
<td id="my_custom_id_3" class="status" nowrap="">07-10-2014 12:46:34</td> 
<td id="my_custom_id_4" class="status" nowrap=""> 0d 2h 19m 42s</td> 
<td id="my_custom_id_5" class="status">3/3</td> 
<td id="my_custom_id_6" class="status" valign="center"> </td> 
... 

的唯一的事情是,ID在每個TR 0-6再次重複的xD,但我會找到辦法。

謝謝!!!!