我需要检查div A的数据值是否包含div B的数据值,如果是,则将一个类应用于div B,注意有很多div B。
HTML:
<div class="a" data-num="1,2,3,4,5">div A</div>
<div class="b" data-num="3">div B</div>
<div class="b" data-num="6">div B</div>
<div class="b" data-num="1">div B</div>
JQUERY:
$('div.b').each(function(){
var a_num = $('div.a').data('num');
var b_num = $(this).data('num');
if ($(a_num).indexOf(b_num)) {
$(this).addClass('special');
}
});
我认为上述方法可行,但事实并非如此。救命?感谢。
答案 0 :(得分:1)
有几个问题......首先-1
始终需要与0
进行比较,因为10,11,12
是有效的索引,但也是假的
如果您将数组用于div A值,那么您的概念就可以了。否则,您只是在进行字符串比较,1
在使用$()
最后不要将数据包装在<div class="a" data-num="[1,2,3,4,5]">div A</div>
中。它不是dom相关的
你可以做到
split()
或使用当前格式并使用var a_num = $('div.a').data('num').split(',');
-1
对于这两种情况,您必须使用与 if (a_num.indexOf(b_num) >-1)
if ($_FILES) {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '200';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload');
$this->upload->initialize($config);
if (!$this->upload->do_multi_upload("file")) {
$data['errors'] = ($this->upload->display_errors());
} else {
$images = ($this->upload->get_multi_upload_data());
for ($i = 0; $i < count($images); $i++) {
$this->user_model->addUserImage($images[$i]);
}
}
答案 1 :(得分:0)
您需要在此处创建自己的功能,因为indexOf
无效。
function isFound(arr,num){
fnd = false
for (n=0; n<arr.length; n++){
var bb = parseInt(num);
var aa = arr[n];
aa = parseInt(aa);
if (aa==bb) fnd=true;
}
return fnd;
}
$('div.b').each(function(){
var aa = $('.a').data('num').split(',');
var bb = $(this).data('num');
var tst = isFound(aa, bb);
if (tst) {
$(this).addClass('special');
}
});
&#13;
.special{color:red;font-weight:bold;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="a" data-num="1,2,3,4,5">div A</div>
<div class="b" data-num="3">div B</div>
<div class="b" data-num="6">div B</div>
<div class="b" data-num="5">div B</div>
&#13;