gpt4 book ai didi

javascript - 如何使用 jQuery 遍历嵌套的 HTML div 元素

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:12 25 4
gpt4 key购买 nike

我的网页中有一个嵌套的 HTML div 元素。我将数据从 JSON 文件读取到变量中。

EX:obj 将是具有以下属性的对象数组。名称、进度、描述和状态,以便可以访问每个元素这样

obj[index].Name
obj[index].Progress
obj[index].Description
obj[index].Status

我需要遍历每个 div 元素并设置数据。我如何使用 jQuery 执行此操作。

例如:我需要遍历 div(#row) 中的每个 info-box并在以下 HTML 元素中设置值

 - <span class="info-box-text">NAME-1</span>
- <div class="progress-bar" style="width: 70%"></div>
- <span class="progress-description">PRODUCT-DESCRIPTION-1 </span>
- <span class="label label-info">PROGRESS-1</span>

jQuery 的每个函数都应该循环遍历以下 HTML

<div class="row">
<div class="col-md-3 col-sm-6 col-xs-12">
<div class="info-box">
<div class="info-box bg-yellow">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-1</span>
<div class="progress">
<div class="progress-bar" style="width: 70%"></div>
</div>
<span class="progress-description">
PRODUCT-DESCRIPTION-1
</span>
<span class="label label-info">PROGRESS-1</span>
<span style="padding-left:5px" class="ion-person-stalker">&nbsp;5</span>
</div>
</div>
</div>
</div>

<div class="col-md-3 col-sm-6 col-xs-12">
<div class="info-box">
<div class="info-box bg-green">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-2</span>
<div class="progress">
<div class="progress-bar" style="width: 85%"></div>
</div>
<span class="progress-description">
PRODUCT-DESCRIPTION-2
</span>
<span class="label label-success">PROGRESS-2</span>
<span style="" class="ion-person-stalker">&nbsp;8</span>
</div>
</div>
</div>
</div>


<div class="col-md-3 col-sm-6 col-xs-12">
<div class="info-box">
<div class="info-box bg-red">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-3</span>
<div class="progress">
<div class="progress-bar" style="width: 70%"></div>
</div>
<span class="progress-description">
PRODUCT-DESCRIPTION-3
</span>
<span class="label label-success">PROGRESS-3</span>
<span style="" class="ion-person-stalker">&nbsp;15</span>
</div>
<!-- /.info-box-content -->
</div>
</div>
</div>
</div>

最佳答案

如果你想从 html 读取属性到 JSON 对象,你可以这样做:查看结果请查看控制台

$(function(){
var obj = {};
for(var i=0;i<$('.item').length;i++){
obj[i] = {
Name : $('.item').eq(i).find('.info-box-text').html(),
Progress : $('.item').eq(i).find('.progress-bar').html(),
Description : $('.item').eq(i).find('.progress-description').html(),
Status : $('.item').eq(i).find('.status').html()
}

};
console.log(obj);

})
<link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>
<div class="row">
<div class="col-md-3 col-sm-6 col-xs-12 item">
<div class="info-box">
<div class="info-box bg-yellow">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-1</span>
<div class="progress">
<div class="progress-bar" style="width: 70%">70</div>
</div>
<span class="progress-description">PRODUCT-DESCRIPTION-1</span>
<span class="label label-info status">PROGRESS-1</span>
<span style="padding-left:5px" class="ion-person-stalker">&nbsp;5</span>
</div>
</div>
</div>
</div>

<div class="col-md-3 col-sm-6 col-xs-12 item">
<div class="info-box">
<div class="info-box bg-green">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-2</span>
<div class="progress">
<div class="progress-bar" style="width: 85%">85</div>
</div>
<span class="progress-description">PRODUCT-DESCRIPTION-2</span>
<span class="label label-success status">PROGRESS-2</span>
<span style="" class="ion-person-stalker">&nbsp;8</span>
</div>
</div>
</div>
</div>


<div class="col-md-3 col-sm-6 col-xs-12 item">
<div class="info-box">
<div class="info-box bg-red">
<span class="info-box-icon"><i class="ion ion-filing"></i></span>
<div class="info-box-content">
<span class="info-box-text">NAME-3</span>
<div class="progress">
<div class="progress-bar" style="width: 70%">70</div>
</div>
<span class="progress-description">PRODUCT-DESCRIPTION-3</span>
<span class="label label-success status">PROGRESS-3</span>
<span style="" class="ion-person-stalker">&nbsp;15</span>
</div>
<!-- /.info-box-content -->
</div>
</div>
</div>
</div>

如果你想从 JSON 对象追加 html 元素:

用 js 制作一个你想要添加的 div 的字符串,例如我写了一个函数(ma​​keText),我在里面制作了我的 html 元素

//for exmaple :
var obj = [
{Name:'Name1',Progress:'Progress1',Description:'Description1',Status:'Status1'},
{Name:'Name2',Progress:'Progress2',Description:'Description2',Status:'Status2'},
{Name:'Name3',Progress:'Progress3',Description:'Description3',Status:'Status3'},
{Name:'Name4',Progress:'Progress4',Description:'Description4',Status:'Status4'},
{Name:'Name5',Progress:'Progress5',Description:'Description5',Status:'Status5'},
]

for( var x in obj){
$('.appendToHere').append(makeText(obj[x].Name,obj[x].Progress,obj[x].Description,obj[x].Status));
}

function makeText(Name,Progress,Description,Status){
return('<div class="col-md-3 col-sm-6 col-xs-12"><div class="info-box"><div class="info-box bg-yellow"><span class="info-box-icon"><i class="ion ion-filing"></i></span><div class="info-box-content"><span class="info-box-text">'+Name+'</span><div class="progress"><div class="progress-bar" style="width: 70%"></div></div><span class="progress-description">'+Description+'</span><span class="label label-info">'+Progress+'</span><span style="padding-left:5px" class="ion-person-stalker">&nbsp;'+Status+'</span></div></div></div></div>');
}
<link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>
<div class="row appendToHere"></div>

关于javascript - 如何使用 jQuery 遍历嵌套的 HTML div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36278949/

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