2012-10-30 103 views
0

我寫了一個簡單的if條件,但不是很有效。 如果文本是123更改爲嗨,如果文本是456更改爲hi2 有人請給我一隻手。jQuery如果條件文本包含

<h1>123</h1> 
    <h1>456</h1> 
    <h1>789</h1>​ 


$(document).ready(function() { 

    var changeText1 = '123'; 
    var changeText2 = '456'; 
    var text = $(h1).text(); 

    if (text == changeText) { 
     $(this).text('hi'); 
    } else if (text == changeText2) { 
     $(this).text('hi2'); 
    } 

}); 

http://jsfiddle.net/8P2ma/

+0

如何將這些文本替換的很多,你呢? –

回答

2

有AR E倍數的事情你的代碼錯誤:

$(document).ready(function() { 

    var changeText1 = '123'; 
    var changeText2 = '456'; 
    var text = $(h1).text(); //aside from having to iterate through, the jquery 
          //selector needs to be enclosed in quotes: $('h1') 
    if (text == changeText) { //The variable 'changeText' does not exist. 
     $(this).text('hi'); 
    } else if (text == changeText2) { 
     $(this).text('hi2'); 
    } 

}); 

//working code: 
$(document).ready(function() { 

    var changeText1 = '123'; 
    var changeText2 = '456'; 

    $('h1').each(function() { 
     var text = $(this).text(); 
     if (text == changeText1) { 
      $(this).text('hi'); 
     } else if (text == changeText2) { 
      $(this).text('hi2'); 
     } 
    }); 
});​ 
+0

謝謝你的解釋並把我放好,會打勾這是一個正確的答案。 – olo

+0

@olo歡迎,很高興我能提供幫助。 – Daedalus

0

做這樣的:

$(document).ready(function() { 
    var change = { 
     '123': 'hi', 
     '456': 'hi2' 
    }; 
    $('h1').text(function(i, txt) { 
     return change[$.trim(txt)]; 
    }); 
}); 

DEMO:http://jsfiddle.net/By4Ra/

+2

如果您可以保證DOM上元素的順序,這隻會有效,這似乎是一個危險的假設。 –

+0

@PaoloBergantino:你說得對。固定。 –

1
$(function() { 
    $('h1:contains("123")').text('hi'); 
    $('h1:contains("456")').text('hi2'); 
});​ 

FIDDLE

+0

方便快捷,我用過包含,但沒有工作,我發現我錯過了一封信!感謝這 – olo

+1

這比其他兩個答案的效率要低。 –