2016-12-16 60 views
0

我遍歷了類的每個元素,並且用bold標記代替了所有**。用JavaScript中的新值替換this()

但是,它不是我想要的輸出。我用窗口警報,並檢查,正則表達式正確地轉換它,但$(this).html = txt似乎並沒有工作。我試過使用innerHTML,val。似乎沒有任何工作。

代碼註釋掉了,但我不能引用所有的Id,因爲它可能會添加新的,因此我遍歷類的每個元素。

$(document).ready(function() { 
    setTimeout(function(){ 
     var bold = /\*\*(\S(.*?\S)?)\*\*/gm; 
     $(".grid-text").each(function() { 
      var currentElement = $(this).html(); 
      var txt = currentElement.replace(bold, '<strong>$1</strong>'); 
      $(this).html= txt; 
     }); 
     // var s = document.getElementById("001_1_1").innerHTML; 
     // var txt = s.replace(bold, '<strong>$1</strong>'); 
     // document.getElementById("001_1_1").innerHTML = txt; 
    }, 3000); 
}); 
+0

什麼元素'.grid,text'?嘗試指定爲文本而不是html – guradio

+0

'$(this).html = txt;'這意味着將txt分配給'html'屬性,這是一個jQuery裝飾函數,而不是元素的'html' –

+0

這是什麼如何處理[tag:java]? *「'$(this).html = txt'似乎沒有工作」*看起來你還沒有閱讀[文檔](http://api.jquery.com/html/#html2)。從文檔中可以清楚地看到它的使用方式。 –

回答

2

.html是一個函數:

$(this).html(txt); 
+0

我在編輯相同的答案......;) –

+0

@LouysPatriceBessette下次更好運氣:) – Mairaj

+0

非常感謝! :) –

1

嘗試通過TXT作爲參數傳遞給.html()功能:

$(this).html(txt);