jQuery的 this和$(this)
阿新 • • 發佈:2017-07-19
tab 循環 amp ole .text lin 原生 我想 for
今天剛剛遇到的問題,用jquery主要的目的是想匹配一個標簽內的字符串後執行幾個操作
1 {loop $qq_result $activity} 2 <dd> 3 <a href="qq?viewthread&tid={$qq[‘tid‘]}&mobile=2"> 4 <div class="deantabimg"><img src="qq/{$activity[‘activityaid_url‘]}" width="120" zsrc="qq/forum/{$activity[‘activityaid_url‘]}" style="display: inline; visibility: visible;"></div> 5 <div class="deantabinfo"> 6 <div class="deantabil"><span>{$qq[‘author‘]}</span></div> 7 <h3>{$qq[‘subject‘]}</h3> 8 <div class="deantabir"><span class="qq_price">¥ <b>{$qq[‘use_cost‘]}</b> 元</span> <span class="view_reply_wrap"><b>{$qq[‘views‘]}</b><strong>{$qq[‘replies‘]}</strong></span></div> 9 </div> 10 </a> 11 </dd> 12 {/loop}
這總共循環了10條數據,我想查詢到的是.deantabil 下的span裏的數據,首先我是用的是each方法循環遍歷,當我想獲取{$qq[‘author‘]} 的text()時 我使用的是this ,結果瀏覽器報錯:
$(".activity_list dd").each(function() { var text = this.find(‘.deantabil span‘).text(); if(text === ‘文‘ || text ===‘宇‘){ this.remove(); }
this並沒有指向當前的 <dd> ,我使用console.log打印this,這個this指向了html對象;之後我又將this換成$(".activity_list dd .deantabil")想讓它尋找span,結果text變量變成了包含了10條數據數組;
最後將this改用了jquery的特殊上下文對象 $(this),查詢正常,輸出也正常。這就證明在each()方法內部 必須得和$(this)配套使用。
它們之間的區別:$(this)是jquery的特殊上下文對象,在each循環遍歷的語句中尤為重要;this則是原生的html上下文,使用範圍更加廣泛。
jQuery的 this和$(this)