我用下面的代碼:jQuery .filter()方法做什麼?
var td = $('#job-tbody').find('td[class=status]').filter('#' + object.id);
與此問題是,當我再次調用該函數(包含這行代碼),用於在第二時間,也返回先前匹配的結果。爲什麼?
根據文檔,它構造了一個新的包含過濾結果的jquery對象。
這是活的(JQuery)事件問題...當我添加請求。直播活動一次又一次地發生......不必要的火災......
我用下面的代碼:jQuery .filter()方法做什麼?
var td = $('#job-tbody').find('td[class=status]').filter('#' + object.id);
與此問題是,當我再次調用該函數(包含這行代碼),用於在第二時間,也返回先前匹配的結果。爲什麼?
根據文檔,它構造了一個新的包含過濾結果的jquery對象。
這是活的(JQuery)事件問題...當我添加請求。直播活動一次又一次地發生......不必要的火災......
Filter
將jQuery對象的集合減少爲僅在本例中匹配選擇器的那些對象。因爲你在一個id上匹配,它應該最多返回一個匹配元素。
編輯:確保在AJAX請求中關閉緩存 - 根據您的緩存設置方式,您可能從客戶端或服務器獲取緩存的請求數據。
$.ajax({
url: '/Helper/GetAllJobs',
type: 'post',
cache: false, // <-- add this
...
id是唯一的....當發現id ...我改變行背景顏色...但下一次調用函數... .for其他獨特的ID ...這前一行也返回....我的意思是顏色變化等...我想'td'是唯一的每次函數被稱爲....我不想緩存.. .. – 2011-05-27 10:57:45
@Muaz - 給定的代碼不會返回任何緩存的結果。如果沒有更多的代碼/標記,就必須發生其他事情。 – tvanfosson 2011-05-27 10:59:55
實際上我使用$ .each()...用於循環數據庫.....並且上面的代碼存在於該循環中...... – 2011-05-27 11:00:00
的.filter()
功能 - 減少匹配的元素的那些選擇器匹配或傳遞函數的測試。
考慮用一個簡單的列表的頁面就可以了:
我們可以將此方法應用於一組列表項:
$('li').filter(':even').css('background-color', 'red');
此調用的結果是一個紅色背景項目1,3和5,因爲它們與選擇器匹配(回想起:even和:odd使用基於0的索引)。
例
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left;
border:2px white solid;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div></div>
<div class="middle"></div>
<div class="middle"></div>
<div class="middle"></div>
<div class="middle"></div>
<div></div>
<script>
$("div").css("background", "#c8ebcc")
.filter(".middle")
.css("border-color", "red");
</script>
</body>
</html>
OUTPUT 這將突出顯示紅色邊框是中間的箱子。這意味着最左邊和最右邊的盒子不會被弄髒。
閱讀手冊http://api.jquery.com/filter/ – diEcho 2011-05-27 11:11:20