雖然在一個項目我碰到一個bug跑,發現了這個意外的行爲的工作:爲什麼使用.html()打破這個替換表達式?
如果我叫.replace()
一個字符串,並將結果設置爲使用.text()
替換功能一個div工程,我期望的那樣。
但是,如果我在字符串上調用.replace()
並使用.html()
將結果設置爲div,則目標文本在字符串中不會被替換。
這裏是我的意思的例子:
\t $('#result1').text('¤cyId'.replace('¤cyId','¤cyId')); // works
\t $('#result2').html('¤cyId'.replace('¤cyId','¤cyId')); // doesnt work
var result = '¤cyId'.replace('¤cyId','¤cyId')
\t $('#result3').text(result); // works
\t $('#result4').html(result); // doesnt work
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result1"></div><br>
<div id="result2"></div><br>
<div id="result3"></div><br>
<div id="result4"></div>
我看到使用.text()
代替.html()
解決問題,但...
爲什麼會發生這種情況?
*「目標文本未在字符串中替換」* - 否,目標文本*被替換。當結果被視爲造成您的問題的html時,會發生什麼情況。 – nnnnnn