gpt4 book ai didi

javascript - 将for循环附加到html中的div

转载 作者:行者123 更新时间:2023-11-28 15:56:43 24 4
gpt4 key购买 nike

所以我正在尝试学习 javascript,我认为我有一个有效的 json 脚本,其中有一个循环来获取数据,但我无法弄清楚如何将数据附加到我的 div 中。在我弄清楚这一点之后,我将在 jquery 中重做它(因为我也在尝试学习这一点)。

假设我的 div id 是#wrapper

for (var i = 0; i < providerlisting.length; i++) {
document.write('<div class="entry panel row"> \
<div class="large-4 columns first"> \
<div class="name">' + providerlisting[i].nametitle + '</div> \
<div class="specialty">' + providerlisting[i].caretype + '</div> \
<div class="peferred">' + providerlisting[i].preferredprovider + '</div> \
</div> \
<div class="large-3 columns second"> \
<div class="address">' + providerlisting[i].address1 + '<br /> \
' + providerlisting[i].address2 + '<br /> \
' + providerlisting[i].citystatezip + ' \
</div> \
</div> \
<div class="large-3 columns third"> \
<img src="' + providerlisting[i].coverage + '" alt="example"> \
</div> \
<div class="large-2 columns fourth"> \
<div class="status">' + providerlisting.status + '</div> \
<a data-dropdown="actionsMenu2" class="actions button small secondary round dropdown" href="#">Actions</a><br> \
<ul id="actionsMenu2" data-dropdown-content="" class="f-dropdown"> \
<li><a href="' + providerlisting[i].psn + '">Generate PSN</a></li> \
<li><a href="' + providerlisting[i].dcontact + '">Download Contact</a></li> \
<li><a href="' + providerlisting[i].save + '">Save to Provider List</a></li> \
<li><a href="' + providerlisting[i].rating + '">View Healthgrades Rating</a></li> \
</ul> \
</div> \
</div> \
')};

最佳答案

不要使用document.write ,这是一个直接输出(无论 <script> 可能位于何处)。而且,如果不进入 DOM 对象,您将需要附加到 .innerHTML 。例如

var wrapper = document.getElementById('wrapper');

for (...){
/*document.write(*/
wrapper.innerHTML +=
'<div ...'
;
/*);*/
}

现在,您可以开始使用 DOM 元素。例如:

var wrapper = document.getElementById('wrapper');

for (...){
// create the outer div (with classes 'entry panel row'):
var entry_panel_row = document.createElement('div');

// add the class names:
entry_panel_row.className = 'entry panel row';

// instead of document.write, add the HTML to this new element...
entry_panel_row.innerHTML += '<div class="large-4 ...</div>';

// now append the element (as a whole) to wrapper
wrapper.appendChild(entry_panel_row);
}

更进一步,您可以一一创建元素,并将它们附加到每个父元素,而不是使用字符串。然后,将整个 DOM 元素编译为 entry_panel_row您可以继续wrapper.appendChild(entry_panel_row) .

<小时/>

jQuery(稍微)比 el = document.createElement 更容易和parent.appendChild(el)一遍又一遍,术语需要一些时间来适应,但这就是您所拥有的。我想我会翻译它,这样你就可以看到 jQuery(你提到过学习它):

for (var i = 0; i < providerlisting.length; i++){
var pl = providerlisting[i]; // shorthand reference

// begin building you DOM element
$('<div>')
.addClass('entry panel row') // css classes
.append( // children
$('<div>').addClass('large-4 columns first').append(
$('<div>').addClass('name').text(pl.nametitle),
$('<div>').addClass('specialty').text(pl.caretype),
$('<div>').addClass('preferred').text(pl.preferredprovider)
),
$('<div>').addClass('large-3 columns second').append(
$('<div>').addClass('address').html(pl.address1 + '<br />' + pl.address2 + '<br />' + pl.citystatezip)
),
$('<div>').addClass('large-3 columns third').append(
$('<img>').attr({'src':pl.coverage,'alt':'example'})
),
$('<div>').addClass('large-2 columns fourth').append(
$('<div>').addClass('status').text(pl.status),
$('<a>').addClass('actions button small secondary round dropdown').prop('href','#').data('dropdown','actionsMenu2').text('Actions'),
'<br />',
$('<ul>').prop('id','actionsMenu2').addClass('f-dropdown').data('dropdownContent','').append(
$('<li>').append(
$('<a>').prop('href',pl.psn).text('Generate PSN')
),
$('<li>').append(
$('<a>').prop('href',pl.dcontact).text('Download Contact')
),
$('<li>').append(
$('<a>').prop('href',pl.save).text('Save to Provider List')
),
$('<li>').append(
$('<a>').prop('href',pl.rating).text('View Healthgrades Rating')
),
)
)
)
.appendTo('#wrapper'); // add it to #wrapper
}

关于javascript - 将for循环附加到html中的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18489894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com