2017-02-21 27 views
3

EDITED-修復自我造成的錯誤。我有一組圖片及其URL。他們都在同一班。我想根據索引位置爲圖片指定一個新標題。例如圖像1-3應該是「光芒四射的花朵」,4-6將是光彩的灌木。jquery爲標題元素分配不同的值

$('.flower').each(function (index, value) { 
     console.log(index + ':' + $(this).attr('title')); 
     if (index === 2)) { 
     $('.flower').attr('title',"Radiant Flowers"); 
     } 
    }); 

控制檯顯示以下輸出:

  • 0:蝴蝶百合 - Calochortus 物種
  • 1:蝴蝶百合 - Calochortus 物種
  • 2:蝴蝶百合 - Calochortus 品種
  • 3:輻射花

所以當我檢查元素時,標題都變成了「輻射鮮花」。 我注意到的是,當我得到這個工作時,代碼改變了所有的值,而不是我希望影響的值。有沒有辦法做到這一點?

+0

您登錄雙線你的標題已經修改了上線前4.是這樣的故意的?它看起來像你在做什麼應該工作。 – minorcase

+0

我想確保程序觸及的值。由於不太瞭解jquery,我靠着控制檯讓我知道代碼在做什麼。標題在日誌中顯示正常,但不顯示在實際頁面上。 –

+0

我編輯了我的答案,希望它有助於 – Igor

回答

2

你parseInt函數需要一個壞的說法:「指數」> 2 您應將其更改爲parseInt函數(指數)> 2,我想......

關於實際的問題:通過你的元素和你你循環檢測到你想要修改的那個...然後你修改所有類爲「flower」的元素。這個好的方法是把它放在你的「if」裏面:$(this).attr('title','Radiant Flowers');

原因是$('。flower')會選擇CSS類爲「花朵」的所有元素,但您只需要更改當前元素。這就是爲什麼,$(this)應該起作用。更好的是,您可以使用$(value)becase「value」是指向foreach循環中當前元素的變量。

+0

這也是我的猜測。你正試圖parseInt一個布爾值,因爲('index'> 2)將被評估(爲false),然後解析結果。 – jonifen

1

發生了什麼事,是這行:$('.flower').attr('title',"Radiant Flowers");真正改變元素的所有flower類,而不是你想改變的。

爲了解決這個問題,在你的代碼,更改此:

if (index === 2)) { 
    $('.flower').attr('title',"Radiant Flowers"); 
} 

if (index > 2)) { 
    $(this).attr('title',"Radiant Flowers"); 
} 
+0

這麼簡單!謝謝! –

+1

@George Sherman所以...接受它是正確的方式去:-) –

相關問題