[英]JQuery filter function to ignore html elements and search only text
我目前有以下JQuery過濾器,其中holiday_days是一個可變日期編號(例如1,2,3,4 ... 28,29,30)。 文本必須完全匹配,例如,如果holiday_days = 1,它不會返回1,10,11,12 ...
var element = $('td').filter(function() {
return Number(this.textContent) == holiday_days;
});
我的html看起來有點像下面這樣:
<table>
<tr>
<td class="holiday_days">
"holiday_days"
</td>
...
在代碼中,我稍后在文本下面的某些分隔符上添加一個跨度。
<table>
<tr>
<td class="holiday_days">
"holiday_days"
<-- appended -->
<span>There is a link in here</span>
<-- appended -->
</td>
...
那么我的過濾器什么都沒有。 我怎么能
要么
有兩種方法可以解決這個問題。 簡單的方法是將值包裝在自己的span
這樣您就可以直接檢索它而不需要兄弟姐妹:
<td class="holiday_days">
<span class="holiday-days">[holiday_days]</span>
<span>There is a link in here</span>
</td>
var element = $('td').filter(function() {
return parseInt($(this).find('.holiday-days').text(), 10) == holiday_days;
});
或者,您可以保留HTML原樣並從td
本身讀取第一個textNode值:
var element = $('td').filter(function() {
var holidayText = $(this).contents()[0].textContent.trim();
return parseInt(holidayText, 10) == holiday_days;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.