2016-11-07 57 views
2

我使用markdown轉換器JavaScript來轉換用戶回覆區域中的文本,但它只獲取來自其他用戶的最後一個文本,並將它放在頂部我不知道我做了什麼錯誤。我的html的Javascript替換元素的id使用for循環

<script> 
 
var inputs = document.getElementsByClassName("RepIcer"); 
 
var converter1 = Markdown.getSanitizingConverter(); 
 
var CODESOFTLAB = new Markdown.Converter(converter1); 
 

 
for(var i = 0; i < inputs.length; i++){ 
 
    var input = inputs[i]; 
 
    var value = input.value; 
 
    var MarkDownPreviewHtml = CODESOFTLAB.makeHtml(value); 
 
    var targetId = input.id.replace("before", "replysjl"); 
 
    var targetSpan = document.getElementById(targetId); 
 
    targetSpan.innerHTML = MarkDownPreviewHtml; 
 
    var a = 10; 
 
}//for() 
 

 
</script>
<p id="reply-0"></p> 
 
    <textarea id="replybefore-0" style="display:none;" class="RepIcer">Hello how are you</textarea> 
 
    
 
    <p id="reply-5"></p> 
 
    <textarea id="replybefore-5" style="display:none;" class="RepIcer">HHHH okay</textarea> 
 
    
 
    <p id="reply-6"></p> 
 
    <textarea id="replybefore-6" style="display:none;" class="RepIcer">Whuyyyy</textarea> 
 
    
 
    <p id="reply-10"></p> 
 
    <textarea id="replybefore-10" style="display:none;" class="RepIcer">Not working</textarea>

<p id="reply-0"></p> 
<textarea id="replybefore-0" style="display:none;" class="RepIcer">Hello how are you</textarea> 

<p id="reply-5"></p> 
<textarea id="replybefore-5" style="display:none;" class="RepIcer">HHHH okay</textarea> 

<p id="reply-6"></p> 
<textarea id="replybefore-6" style="display:none;" class="RepIcer">Whuyyyy</textarea> 

<p id="reply-10"></p> 
<textarea id="replybefore-10" style="display:none;" class="RepIcer">Not working</textarea> 

爲什麼我混淆了ptextarea元素ID是基於時間的答覆是插入到數據庫中回覆的ID來自db的消息是我在reply-XX and replybefore-XX中使用的,如果這是另一種方式,我可以添加僞造的ID像'12345 ...'直到最後一個回覆我會喜歡它

比這裏是我的javascript根據每個元素

<script> 
 
    var inputs = document.getElementsByClassName("RepIcer"); 
 
     var converter1 = Markdown.getSanitizingConverter(); 
 
     var CODESOFTLAB = new Markdown.Converter(converter1); 
 
     
 
     for(var i = 0; i < inputs.length; i++){ 
 
      var input = inputs[i]; 
 
      var value = input.value; 
 
      var MarkDownPreviewHtml = CODESOFTLAB.makeHtml(value); 
 
      var targetId = input.id.replace("before", "replyList"); 
 
      var targetSpan = document.getElementById(targetId); 
 
      targetSpan.innerHTML = MarkDownPreviewHtml; 
 
      var a = 10; 
 
     } 
 
    </script>

+0

能否請你把你的代碼粘貼到一個片段? – tmslnz

+0

@tmslnz我沒有得到你的意思對不起 –

+0

編輯你的問題,你會在編輯器中看到一個像'<>'的按鈕。點擊它並把你的代碼放在那裏。 – tmslnz

回答

0

這裏是一個jsFiddle版本,而降價的ID進去textarea的文本,並在p元素顯示,但你可以從那裏闡述。

你的目標ID替換不正確的更換,請參閱下面的作品代碼:

var inputs = document.getElementsByClassName("RepIcer"); 

for(var i = 0; i < inputs.length; i++){ 
    var input = inputs[i]; 
    var value = input.value; 
    var targetId = input.id.replace("before", ""); 
    var targetSpan = document.getElementById(targetId); 
    targetSpan.innerHTML = value; 

}