2016-03-15 49 views
1

以下是生成的動態表的示例td。 我需要遍歷tds以匹配'Data'的值,並檢查其相應的'Result'值是否已填充。如果沒有填充'Result',則不會有span class="taglist"元素。使用jQuery獲取範圍內的特定文本

<td class="indent0"> 
    Data1 
    <span class="aspect-data"> 
     <span class="taglist">Result1</span> 
    </span> 
<td class="indent0"> 
    Data2 
    <span class="aspect-data"> 
     <span class="taglist">Result2</span> 
    </span> 

我曾嘗試使用下面的代碼,它提醒所有的'Result'值進行迭代,但我需要只給出'Data'的相應值。

$('.indent0').each(function() { 
    var celltext = $(this).html(); 
    if (celltext = "Data1") { 
     var spantext = $(this).find(".taglist").html(); 
     if (spantext != null) { 
      alert(spantext); 
     } 
    } 
}); 
+0

'如果(CELLTEXT = 「數據1」)'是分配;你需要的是if(celltext ==「Data1」)' – SearchAndResQ

回答

1

嘗試使用contents

$('.indent0').each(function() { 
    var celltext = $(this).contents().first()[0].textContent; //this line has changed 
    if (celltext == "Data1") { 
     var spantext = $(this).find(".taglist").html(); 
     if (spantext != null) { 
      alert(spantext); 
     } 
    } 
}); 

$('.indent0').each(function() { 
    var celltext = $(this).contents()[0].nodeValue; //this line has changed 
    if (celltext == "Data1") { 
     var spantext = $(this).find(".taglist").html(); 
     if (spantext != null) { 
      alert(spantext); 
     } 
    } 
}); 
1

可以使用startsWith()像以下。

$('.indent0').each(function() { 
 
    var celltext = $(this).text().trim(); // change here 
 
    if (celltext.startsWith("Data1")) { // change here 
 
     var spantext = $(this).find(".taglist").html(); 
 
     if (spantext != null) { 
 
      alert(spantext); 
 
     } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
     <td class="indent0"> 
 
      Data1 
 
      <span class="aspect-data"> 
 
       <span class="taglist">Result1</span> 
 
      </span> 
 
     </td> 
 
     <td class="indent0"> 
 
      Data2 
 
      <span class="aspect-data"> 
 
       <span class="taglist">Result2</span> 
 
      </span> 
 
     </td> 
 
    </tr> 
 
</table>

2

你的問題是,DataX不裹在一個特定的元素,所以你需要獲取文本節點,並檢查該文本值對值你」重新尋找。

另外請注意,您在使用=設置一個值,而不是==if條件來比較值,你的HTML缺少一些</td>標籤。嘗試:

$('.indent0').each(function() { 
    var celltext = $(this).contents()[0].nodeValue.trim(); 
    if (celltext == "Data1") { 
     var spantext = $(this).find(".taglist").html(); 
     if (spantext != null) { 
      alert(spantext); 
     } 
    } 
}); 

Working example

相關問題