2016-11-07 62 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; 

}