jquery找出特定text的標籤

  • 284
  • 0

jquery找出特定text的標籤

<table>
	<tr>
		<td>1</td>
		<td>AAA</td>
		<td>sdfwertwer</td>
	</tr>
	<tr>
		<td>2</td>
		<td>BBB</td>
		<td>amkyuyu</td>
	</tr>
	<tr>
		<td>3</td>
		<td>AAABBB</td>
		<td>asdads1231312</td>
	</tr>
</table>

使用jQuery找出內容為AAA的td

// jquery filter
$("td").filter(function(){ return $(this).text() == 'AAA' });
$("td").filter(function(i, x){ return $(x).text() == 'AAA' });


// 寫成lambda,因為走的是jquery filter,還是要2個參數
$("td").filter((i, x) => $(x).text() == 'AAA');

// 1個參數的lambda是取不到的
$("td").filter(x => $(x).text() == 'AAA');

// 如果是js Array.prototype.filter(),可以用1個參數的lambda
// 返回結果為DOM物件,非jQuery物件
var tdArr = [].slice.call(document.getElementsByTagName("td")); /* htmlCollection to Array */
tdArr.filter(x => x.innerHTML == 'AAA');

// 用jquery的grep來做,直接當作Array處理,與上面一樣返回DOM物件
$.grep($("td"), x => $(x).text() == 'AAA');

// 如果需求為"找出內容包含AAA的td",可直接使用jquery contains selector
$("td:contains('AAA')");
$("td").filter(':contains("AAA")');

 

參考

https://api.jquery.com/filter/

https://stackoverflow.com/questions/222841/most-efficient-way-to-convert-an-htmlcollection-to-an-array