根本不需要if
語句。
你想要的是迭代每個類與每個類,並將文本設置爲適當的變量。
$('.banner-01')
通過「banner-01」類獲取所有元素的數組。然後,您可以使用each
爲每個這些執行的操作,就像這樣:
var $banner1 = 'Some Text',
$banner2 = 'Some More Text',
$banner3 = 'Even More Text',
$someText;
$('.banner-01').each(function() {
$(this).html($banner1);
});
$('.banner-02').each(function() {
$(this).html($banner2);
});
$('.banner-03').each(function() {
$(this).html($banner3);
});
然後,您炒掉一個方法一次,而不是一次每個元素。
在分鐘,$someText
總是最終成爲'Even More Text'
(因爲$('.banner-03')
總是會返回一個值,因此病情會評估爲true
)。一旦$someText
已被設置3次並達到其最終值,然後您將瀏覽每個課程的所有元素,並將它們全部設置爲'Even More Text'
。
通過以下代碼來說明這個問題:
var $banner1 = 'Some Text',
$banner2 = 'Some More Text',
$banner3 = 'Even More Text',
$someText;
if ($('.banner-01')) {
// 1. Sets $someText to 'Some Text'
var $someText = $banner1;
}
if ($('.banner-02')) {
// 2. Sets $someText to 'Some More Text'
var $someText = $banner2;
}
if ($('.banner-03')) {
// 3. Sets $someText to 'Even More Text'
var $someText = $banner3;
}
// From this point on, $someText is 'Even More Text'.
$('.banner-01 .info').each(function(){
// 4. Sets elements with banner-01 class to 'Even More Text'
$(this).html($someText);
});
$('.banner-02 .info').each(function(){
// 5. Sets elements with banner-02 class to 'Even More Text'
$(this).html($someText);
});
$('.banner-03 .info').each(function(){
// 6. Sets elements with banner-03 class to 'Even More Text'
$(this).html($someText);
});
你發佈的代碼沒什麼意義 - 你能詳細說明你到底想要做什麼嗎? '$ banner1'(它只是一個字符串變量)和'$('。banner-01')'是一種jQuery方法,它將使用'.banner- 01級? – 2015-02-07 22:16:22
@AntP - 對不起 - 所以如果橫幅的類爲.banner-01,那麼var $ someText = $ banner1;對於2和3等等。實質上是這樣的,橫幅使用相同的功能,但變量取決於它的標題。我只是不確定如何正確編寫if語句。 – Nick 2015-02-07 22:19:25
'$('。banner-01')'總是一個真正的對象。 – Oriol 2015-02-07 22:23:26