首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用id替换元素的Javascript使用for循环

用id替换元素的Javascript使用for循环
EN

Stack Overflow用户
提问于 2016-11-07 15:34:50
回答 1查看 158关注 0票数 2

我正在使用标记转换器javascript来转换用户回复区域中的文本,但是它只能从其他用户那里得到最后的文本,并将其放置在顶部--我不知道我做错了什么。

代码语言: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", "replysjl");
  var targetSpan = document.getElementById( targetId );
  targetSpan.innerHTML = MarkDownPreviewHtml;
  var a = 10;
}//for()

</script>
代码语言:javascript
复制
    <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>

我的html示例

代码语言:javascript
复制
<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是基于时间的答复被插入到数据库中,来自db的回复消息id是我在reply-XX and replybefore-XX中使用的,如果这是我可以添加假id的另一种方式,比如‘12345.直到最后一次回复我会喜欢的

这里是我的javascript,用于获取文本区域内的文本,并根据每个元素的id在in元素中显示。

代码语言: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>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 15:56:45

这里有一个没有Markdown的jsFiddle版本,但是您可以从这里详细说明。

您的targetId替换没有正确替换,请参阅下面的代码:

代码语言:javascript
复制
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;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40468917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档