如何解决JavaScript-不显示文本手风琴中的标题?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (69)

首先请看屏幕截图,这里我正在使用Accordion文本编辑器,您可以在其中添加标题和正文。

当我多次点击添加按钮然后显示这种类型。没有显示标题文字。我认为这是JS文件的问题。有什么解决方案?? 提前致谢!

$(document).ready(function() {
	$('#Add_btn').click(function(){
		$('#accordion_body').append($('#editableDiv').html());    		
		var x = document.getElementById("accordion_input").value;
		document.getElementById("accordion_title").innerHTML = x;
	});    	
});

function myAccorFunction() {
    var Myaccordion = `
        <div class="Myacc" id="acc_main" contenteditable="false"
             class="accordion-main"
             style="position: relative;width: 98.5%; left: 9px;">
        </div>
        <div class="panel-group trash_removed" id="accordion" role="tablist"
             aria-multiselectable="true"
             style="margin-bottom: 7px;margin-top: 10px"
             contenteditable="false">
          <div class="panel panel-default">
            <div class="panel-heading" role="tab" id="headingOne"
                 contenteditable="false">
              <h4 class="panel-title">
                <a id="accordion_title" role="button" data-toggle="collapse"
                   data-parent="#accordion" href="#expandingCol"
                   aria-expanded="false" aria-controls="collapseOne">
                </a><div class="icon_area">
                <i class="fa fa-edit" data-toggle="collapse"
                   data-parent="#accordion" href="#collapseOne"
                   aria-expanded="false" aria-controls="collapseOne">
                </i>
                <i onclick="myfundelete()" class="fa fa-trash">
                </i>
              </div>
            </h4>
          </div>
          <div id="expandingCol" class="panel-collapse collapse"
               role="tabpanel" aria-labelledby="headingOne"> 
            <div id="accordion_body" class="panel-body" >
            </div>
          </div>
        </div>
      </div>
    `;
    $("#editor").append(Myaccordion);
}
<button onclick="myAccorFunction()" id="Add_btn"
        class="btn btn-primary note-image-btn" role="button"
        data-toggle="collapse" data-parent="#accordion"
        href="#collapseOne" aria-expanded="true"
        aria-controls="collapseOne">Add</button>
提问于
用户回答回答于

似乎#accordion_title多次使用相同的元素ID 。由于浏览器假设元素ID在页面中是唯一的document.getElementById("accordion_title").innerHTML = x;因此只会更改具有该ID的第一个元素的innerHTML,而不会更改ADD按钮附加的后续元素。

尝试使用类名而不是ID作为标题文本元素,然后迭代该类的每个元素以更改其innerHTML。

$('.accordion_title').each(function() {
    $(this).html($('#accordion_input').val());
});

扫码关注云+社区

领取腾讯云代金券