2013-04-04 64 views
0

我需要迭代div中的某些元素並使用jQuery更改值。這是我的代碼,似乎沒有工作。請突出顯示我的錯誤。無法更改jquery中元素的變量值

var f=$(".Midfeilders img:first"); // used to store 1st element in a variable ... 

後來在我所希望做的代碼是

{ 
    f.attr("src",s); 
    f=f.next() or f=f.nextSibling; 
} 

這裏的錯誤,這似乎並沒有改變SRC

的價值。當我做這樣的事情,

$(".Midfeilders img").attr("src",s); 

該代碼運行完美,但如果我使用上述方法,我不能去下一個元素。 我懷疑它的f.attr(「src」,s)似乎是問題所在。

+0

你在正確的範圍,大概'F'是不確定的? – adeneo 2013-04-04 19:10:22

+0

嗨,adeneo,沒有變量f已被宣佈全球權在開始。 – prahaladp 2013-04-04 19:23:24

+0

打開控制檯(F12)並查找錯誤。 – adeneo 2013-04-04 19:27:23

回答

0

f.next()不會簡單地將f移動到下一個元素。它返回下一個元素。所以,你需要做的是這樣的:

f = f.next(); 
+0

謝謝你的回覆先生,我試過你的解決方案,但我覺得問題在於f.attr(「src」,s);因爲圖像沒有變化 – prahaladp 2013-04-04 19:12:54

0

我不能完全確定你瞭解你迭代使用jQuery元素的方式。

我要利用這個HTML樣本 -

<img src="" /> 
<img src="" /> 
<p></p> 

而一個$.each command證明 -

$('img').each(function(index,elem){ 
    // The $(this) variable will be the relative element 
    // that the loop is currently iterating over 
    $(this).attr('src',SOME_URL); 

    // on the first iteration, this variable will be the second img element. 
    // on the second iteration, this variable will be the paragraph element 
    var otherElement = $(this).next(); 
}); 
+0

我希望這可以幫助,我不只是簡化了這個問題... – Lix 2013-04-04 19:15:55

+0

嗨Lix,我希望一次迭代只有一步onclick事件PS-A小概述我有5個圖像水平排列,我想改變圖像點擊的文本,但如果我要使用你的方法,我將不得不立即改變所有的圖像,我不渴望。因此,我用了。 next()函數,但這裏的問題似乎在.attr()函數中,因爲它似乎沒有改變圖像 – prahaladp 2013-04-04 19:21:20

+0

我不認爲這是問題的'attr'函數。它很可能是與它一起使用的選擇器。嘗試使用'console.log()'進行更多調試,並查看實際使用的元素。 – Lix 2013-04-04 19:28:12