2017-07-05 66 views
0

我有HTML像這樣的初始值:獲得基於在第一個TD文本

<table id="resultsTable"> 
    <tbody role="alert" aria-live="polite" aria-relevant="all"> 
    <tr class="subRow odd" data-activitylogid="6459056" data-auditidentity="18487186" data-auditid="f831583e-d1a9-4e35-ac92-82a5cb48c62e"> 
     <td class=" sorting_1">UserSelection</td> 
     <td class=" "><a class="auditaction">Update</a></td> 
    </tr> 
    <tr class="subRow even" data-activitylogid="6459056" data-auditidentity="18487179" data-auditid="88506880-632f-4e17-bceb-ebd4e20e435a"> 
     <td class=" sorting_1">Procedure</td> 
     <td class=" "><a class="auditaction">Update</a></td> 
    </tr> 

我試圖得到像這樣的auditidentity數據值:

 var uniqueKeys = []; 
     $('#resultsTable').find('tbody > tr').each(function() { 

      var tableName = $(this).find('td:eq(0)').text(); 
      var tableAction = $(this).find('td:eq(1)').text(); 
      var uniqueKey = tableName + '#' + tableAction; 

      if (uniqueKeys.indexOf(uniqueKey) < 0) { 
      uniqueKeys.push(uniqueKey); 
      } else { 
      //alert(tableName); 
      //var initValue = $('#resultsTable tr td:first-child:contains(''' + tableName + ''')).data('auditidentity'); 
      //alert(initValue); 
      var activityLogId = $(this).data('activitylogid'); 
      var auditidentity = $(this).data('auditidentity'); 
      var tableNameString = $(this).find('td:eq(0)').text(); 
      var actionType = $(this).find('td:eq(1)').text(); 
      //$(resultsTable).find('tbody > tr > td:first').contains(tableName).data('auditidentity', initValue + ',' + auditidentity); 

      // After we have what we need, remove the combined row 
      $(this).remove(); 
      } 

     }); 

註釋掉initValue線是不正確的,和控制檯顯示:

VM572:56 Uncaught SyntaxError: missing) 

對於我的生活,我不明白爲什麼。要清楚,我所追求的是第一行的數據,其中第一個單元格是特定的文本值。

+0

邏輯是沒有意義的....你已經有了參照行....你從 – charlietfl

+0

得到了'tableName'細胞@charlietfl我能看到你會認爲,這只是這是我試圖解決的一個更大難題的一小部分。 –

+0

嗯,它確實看起來像一個[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)基於使用答案使用':contains' – charlietfl

回答

1

可能與報價有關;嘗試在選擇器中使用雙引號以避免與多個單引號混淆。

var initValue = $("#resultsTable tr td:first-child:contains('" + tableName + "')").parent().data('auditidentity'); 
+0

這照顧語法問題(謝謝你!),但是現在當我提醒該值時,我得到了未定義的問題。 –

+0

這就是答案:var initValue = $(「#resultsTable tr td:first-child:contains('」+ tableName +「')」)。parent()。data('auditidentity');沒有你的幫助,你不會得到那裏。 –

+0

.parent需要,因爲我在一個孩子/兄弟姐妹(td)行中包含數據!添加家長()到答案和你的贏家! –

相關問題