如何使用jQuery数组结果并将其与div id进行比较?
我的html看起来像这样。但是它在“related”属性中包含更多的框和更多的条目——它们是根据后端逻辑从数据库动态加载的如何使用jQuery数组结果并将其与div id进行比较?,jquery,arrays,Jquery,Arrays,我的html看起来像这样。但是它在“related”属性中包含更多的框和更多的条目——它们是根据后端逻辑从数据库动态加载的 <div id="container"> <div id="134" class=box> <h3 related="157,202">Title</h3> <p>bla bla bla</p> <input name="" value="
<div id="container">
<div id="134" class=box>
<h3 related="157,202">Title</h3>
<p>bla bla bla</p>
<input name="" value="" type="checkbox">
</div>
<div id="157" class=box>
<h3 related="134,202">Title</h3>
<p>bla bla bla</p>
<input name="" value="" type="checkbox">
</div>
<div id="167" class=box>
<h3 related="205,210">Title</h3>
<p>bla bla bla</p>
<input name="" value="" type="checkbox">
</div>
<div id="202" class=box>
<h3 related="134,157">Title</h3>
<p>bla bla bla</p>
<input name="" value="" type="checkbox">
</div>
</div>
谢谢。我只想这么做,所以您也可以在取消选中时删除back
- 只需创建一个接收相关id数组的方法
- 循环所有
- 对于每个,找到复选框并标记它,无论是否选中
$('.box input')。单击(函数(){
var relatedIds=$(this)//单击的复选框
.closest(“.box”)//包装器div
.toggleClass('clicked')//让我们添加/删除一个类
.find(“h3”)//具有属性的h3
.attr(“相关”)
.拆分(“,”);
markAllRelated(relatedIds,$(this).is(“:checked”);
});
函数markAllRelated(relatedID,检查){
$.each(相关ID、函数(索引、val){
$('#'+val)//相关元素
.toggleClass(“已标记”)//添加/删除该类
.find(“输入[type=checkbox]”//输入框
.prop(“选中”,选中);//让我们标记它
});
}
.box{
显示:内联块;
宽度:130px;
背景色:#ccc;
}
.点击{
背景色:#ff0;
}
.标记{
背景色:#f00;
}
标题
呜呜呜呜
标题
呜呜呜呜
标题
呜呜呜呜
标题
呜呜呜呜
您需要的应该是这样的,它根据h3
相关
属性中的ID将类添加到div.box
,并取消选中
$('.box输入')。单击(函数(){
var数组=$(this).closest(.box”).find(“h3”).attr('related').split(“,”);
$。每个(数组、函数(i){
$('#'+array[i]).toggleClass('someClass');
});
});代码>
.someClass{
颜色:红色;
}
标题
呜呜呜呜
标题
呜呜呜呜
标题
呜呜呜呜
标题
呜呜呜呜
related
属性中的id
是否要分配类给h3
相关的属性中的id
呢?当你把$('#'+array[I]).addClass('related')放进去时会发生什么代码>在循环中?谢谢!正是我所需要的。:)
$('.box input').click(function () {
if (this.checked) {
var array = $(this).closest(".box").find("h3").attr('related').split(",");
$.each(array, function (i) {
console.log(array[i]);
});
} else {
/* do something else */
}
}