#javascript #jquery
#javascript #jquery
Вопрос:
Я перечислил, и я хочу, чтобы, когда пользователь выбирал значение из выпадающего списка, затем на основе этого списка значений добавлялся в HTML, который я пробовал, но мой список не очищал предыдущий dom от его добавления, может кто-нибудь помочь мне с решениями вот мой код
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link href="https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script>
var Result = [];
inputvalue="A"
alldata = [
{
Answer: "Ans A",
Title: "For A",
Topic: "A"
},
{
Answer: "Ans B",
Title: "For B",
Topic: "B"
},
{
Answer: "Ans C",
Title: "For C",
Topic: "C"
},
{
Answer: "Ans second A",
Title: "For 1A",
Topic: "A"
}
];
$(function () {
onSuccess(alldata,inputvalue)
});
function onSuccess(objItems,inputvalue) {
objItems = objItems.filter(x => x.Topic == inputvalue)
for (var i = 0; i < objItems.length; i ) {
var data = '<h3 class="myheading">' objItems[i].Title '</h3>'
data = '<div class="mydiv">'
data = '<p>' objItems[i].Answer '</p>'
data = '</div>'
$('#accordion').append(data);
}
$("#accordion").accordion({
heightStyle: "Content",
collapsible: true
});
}
function myFunction() {
var SelectedValue = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "You selected: " SelectedValue;
onSuccess(alldata,SelectedValue);
};
</script>
<select id="mySelect" onchange="myFunction()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<p>When you select a new car, a function is triggered which outputs the value of the selected car.
</p>
<p id="demo"></p>
<div class="mainWrapper" style="margin-top:-30px">
<h1 class="headingtext" style="font-weight:800">Fragen amp; Antworten</h1>
<div id="accordion" class="acco">
</div>
Комментарии:
1. Может кто-нибудь помочь мне с приведенным выше кодом?
Ответ №1:
function onSuccess(objItems,inputvalue) {
objItems = objItems.filter(x => x.Topic == inputvalue)
$("#accordion").empty();
for (var i = 0; i < objItems.length; i ) {
var data = '<h3 class="myheading">' objItems[i].Title '</h3>'
data = '<div class="mydiv">'
data = '<p>' objItems[i].Answer '</p>'
data = '</div>'
$('#accordion').append(data);
}
$("#accordion").accordion({
heightStyle: "Content",
collapsible: true
});
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
var script = document.createElement('script');
var script_ui = document.createElement('script');
link.href = 'https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css';
script.src = 'https://code.jquery.com/jquery-1.10.2.js';
script_ui.src = 'https://code.jquery.com/ui/1.10.4/jquery-ui.js';
head.appendChild(link);
head.appendChild(script);
head.appendChild(script_ui);
}
Комментарии:
1. Теперь у меня возникла проблема @Ahmed Elgammudi большое спасибо, что помогли мне
Ответ №2:
user $(«#accordion»).empty();чтобы очистить который внутри #accordion
<link href="https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script>
var Result = [];
inputvalue="A"
alldata = [
{
Answer: "Ans A",
Title: "For A",
Topic: "A"
},
{
Answer: "Ans B",
Title: "For B",
Topic: "B"
},
{
Answer: "Ans C",
Title: "For C",
Topic: "C"
},
{
Answer: "Ans second A",
Title: "For 1A",
Topic: "A"
}
];
$(function () {
onSuccess(alldata,inputvalue)
});
function onSuccess(objItems,inputvalue) {
objItems = objItems.filter(x => x.Topic == inputvalue)
$("#accordion").empty();
for (var i = 0; i < objItems.length; i ) {
var data = '<h3 class="myheading">' objItems[i].Title '</h3>'
data = '<div class="mydiv">'
data = '<p>' objItems[i].Answer '</p>'
data = '</div>'
$('#accordion').append(data);
}
$("#accordion").accordion({
heightStyle: "Content",
collapsible: true
});
}
function myFunction() {
var SelectedValue = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "You selected: " SelectedValue;
onSuccess(alldata,SelectedValue);
};
</script>
<select id="mySelect" onchange="myFunction()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<p>When you select a new car, a function is triggered which outputs the value of the selected car.
</p>
<p id="demo"></p>
<div class="mainWrapper" style="margin-top:-30px">
<h1 class="headingtext" style="font-weight:800">Fragen amp; Antworten</h1>
<div id="accordion" class="acco">
</div>
Комментарии:
1. Я использовал этот метод empty (), но мой аккордеон не применяется к этому конкретному списку
2. вы знаете, проблема в том, что пользовательский интерфейс скрипта перезагружается только один раз при перезагрузке страницы
3. поэтому, когда вы выбираете новое значение, оно добавляется, но скрипт и ссылка не будут применяться к новому accrodion
4. вы исправляете это, обновляя скрипт внутри head