【发布时间】:2017-07-19 01:59:20
【问题描述】:
我有 动态创建的按钮,假设创建了 5 个按钮 button1、button2、button3、button4、button5。当我点击某个按钮(比如说,button1)时,会创建一个 div(比如说 div1)。当我点击其他按钮(比如 button2)时,会创建另一个 div(比如 div2)。我想一次显示一个。也就是说,当我点击 button1 时,应该显示 div1 而其余的 div 不应该显示。但是在我的代码中,当我单击 button1 时,会创建 div1。当我点击 button2 div2 被附加。我想用 div1 替换 div2。
我也尝试过使用 replaceWith() 并检查 siblings。但它没有奏效。
这是我的代码:
javascript:
$(document).ready(function(){
var request = $.ajax({'url': '/FunctionName'});
request.done(function(response)
{
var output = document.getElementById('output');
response = JSON.parse(response)
response.forEach(function(item){
var button = document.createElement("input");
button.type = "button";
button.value = item[0];
button.name= item[0];
button.onclick = createDiv;
output.appendChild(button);
function createDiv() {
var div = document.createElement('div');
div.setAttribute("id", item[0]);
div.setAttribute("class","inner");
div.innerHTML = item[1];
showDiv.appendChild(div);
}
});
});
request.fail(function(jqXHR, textStatus)
{
alert('Request failed: ' + textStatus);
});
});
HTML:
<div id="regex_1" class="tab-pane fade">
<div id="output" class="panel panel-default" style="float:left; width: 30%" >
</div>
<div id="showDiv" class="panel panel-default" style="float:left; width: 70%" >
</div>
</div>
【问题讨论】:
-
删除 ajax 代码并添加一些不同的东西。 ajax 在这里无法正常工作。
-
在追加之前,清除那个 html。
-
@santosh gore ,清除 html 对我有用,但每次创建新 div 时。有没有办法只替换文本?例如,如果没有 div,则创建 div。如果 div 已经存在,请在单击按钮时替换 div 内的文本。
标签: javascript jquery html