新手的jQuery問題,當配合for使用時
各位好,小弟我初來此地,若有什麼不對規矩的,請多多指教我的問題是:
var c = $('img');
for (var i=0, ci;ci=c[i]; ++i){
$('img').eq(i).ready(function chk() {
這裡我需要將現在這個圖片對象做些動作
例如我試過用 :
if (this.alt!=='Error') ......
或者
if ($('img').eq(i).attr('alt')!=='Error') .......
它都沒辦法運作
後來我alert(this)
它回傳回來的是object
那請教到底要怎樣才能操作當前這個對象呢?
我需要判斷它的屬性特徵後,然後再對它的屬性與CSS修改.
})
}
還請各位前輩們幫幫我! [code]
$('img').each(function(i,obj){
if( $(obj).attr('alt') != 'Error' ){
$(obj).css({'width':'100px'})
}else{
$(obj).hide()
}
})
[/code] [quote]
[size=2][color=#999999]Mesak 發表於 2011-3-11 13:54[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1755&ptid=659][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
感謝Mesak大
我將你這一段放到READY裡面
確實是可以正確抓取到當前的對象並操作
(若不麻煩的話,可以請教你這是什麼原因嗎?)
但有件事挺奇怪....
我以為將圖片綁READY是讓圖片正確載入完畢後動作
但是跑出來的效果居然是....
我舉例一下:
一個頁面裡有A,B兩張圖,但是兩張是相同的(相同SRC)圖
結果圖片載入完成後變成A圖沒跑READY後的動作
只有B有跑READY後的動作.......超奇怪的= =....
這跟我想像不符阿= = [code]
$('img') // 取得 IMG TAG
each //跑回圈
function i,obj //I 是INDEX OBJ 是目前物件
$(obj).attr('alt') 取得該物件的 ALT 屬性
[/code]關於你說的 READY 後才動作,要看你的選擇器怎麼寫 [quote]關於你說的 READY 後才動作,要看你的選擇器怎麼寫
[size=2][color=#999999]Mesak 發表於 2011-3-14 22:07[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1759&ptid=659][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote][code]for (var i=0, ci; ci=c[i]; ++i){
$('img').eq(i).ready(function chk() {
$('img').each(function(a,obj){
if( $(obj).attr('alt') !== 'Error' ){
// alert(obj);
$(obj).attr('alt') = 'ok'
}else{
$(obj).hide()
}
})
})
}[/code]感謝Mesak大回覆
我是這樣寫的....應該沒烏龍吧? [i=s] 本帖最後由 Mesak 於 2011-3-16 10:18 編輯 [/i]
ready 不是給 IMG這個標籤用的,你可以用 load
$('img').each 已經把網頁中所有的圖片跑過了,沒必要再跑一次,這樣做重複了 n! 次[code]$(function(){
$('img').each(function(a,obj){
if( $(obj).attr('alt') !== 'Error' ){
$(obj).attr('alt','ok')
}else{
$(obj).hide()
}
})
})
[/code] [quote]ready 不是給 IMG這個標籤用的,你可以用 load
$('img').each 已經把網頁中所有的圖片跑過了,沒必要再跑 ...
[size=2][color=#999999]Mesak 發表於 2011-3-16 10:16[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1765&ptid=659][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
噗噗....但用ready就是我的重點需求(前提)之一阿....@@
如果只是單純要全部跑過一遍我已知道怎麼弄
我就是要每個圖片本身被綁一個ready
當自己完成載入就觸發自己的ready事件,並做動作.....
用load我試過了...會有一些問題....不合用(瀏覽器問題) 如果你只針對 LOAD 完畢 的話[code]
$('img').ready(function(){
if( $(this).attr('alt') !== 'Error' ){
$(this).attr('alt') = 'ok'
}else{
$(this).hide()
}
})
[/code]這樣就可以了 [quote]如果你只針對 LOAD 完畢 的話這樣就可以了
[size=2][color=#999999]Mesak 發表於 2011-3-18 01:55[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1773&ptid=659][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
感謝Mesak大再指點...
不過我試過後
好像沒有作用的說@@? [code]
$('img').each(function(i,obj)(
$(obj).ready(function(){
if( $(this).attr('alt') !== 'Error' ){
$(this).attr('alt') = 'ok'
}else{
$(this).hide()
}
})
}) [/code]不太清楚你要什麻效果
可以詳細說出來嗎?
頁:
[1]