Jquery-向元素添加数据并通过添加的数据获取元素
我可以通过jquery添加的数据获取和元素吗?比如说Jquery-向元素添加数据并通过添加的数据获取元素,jquery,jquery-data,Jquery,Jquery Data,我可以通过jquery添加的数据获取和元素吗?比如说 函数优先(){ var modal_body=$('.modal body'); 模态体数据('id',4) } 函数第二(){ var modal_body=$('.modalbody[data id=4]'); } 不幸的是,没有 正如您所说,数据属性是由jQuery在内部添加的。实现目标的唯一方法是直接设置属性: function first() { var modal_body = $('.modal-body');
函数优先(){
var modal_body=$('.modal body');
模态体数据('id',4)
}
函数第二(){
var modal_body=$('.modalbody[data id=4]');
}
不幸的是,没有
正如您所说,数据属性是由jQuery在内部添加的。实现目标的唯一方法是直接设置属性:
function first() {
var modal_body = $('.modal-body');
modal_body.attr('data-id',4)
}
function second() {
var modal_body = $('.modal-body[data-id=4]'); // note: fixed .modalbody to .modal-body
}
这使得它也可以作为.data('id')
使用
另一种选择是使用.filter()
:
下面是演示
(()=>{
var modal_body=$('div.modal-body');
模态体属性('data-id',4)
log('使用attr:',$('.modal body[data id=4]')找到)。长度);
})();
(() => {
var modal_body=$('span.modal body');
模态体数据('id',4)
console.log('使用过滤器找到:',$('span.modal body')。过滤器(函数(){
返回$(this).data('id')==4;
}).长度);
})();代码>
模态体
模态体
不幸的是,没有
正如您所说,数据属性是由jQuery在内部添加的。实现目标的唯一方法是直接设置属性:
function first() {
var modal_body = $('.modal-body');
modal_body.attr('data-id',4)
}
function second() {
var modal_body = $('.modal-body[data-id=4]'); // note: fixed .modalbody to .modal-body
}
这使得它也可以作为.data('id')
使用
另一种选择是使用.filter()
:
下面是演示
(()=>{
var modal_body=$('div.modal-body');
模态体属性('data-id',4)
log('使用attr:',$('.modal body[data id=4]')找到)。长度);
})();
(() => {
var modal_body=$('span.modal body');
模态体数据('id',4)
console.log('使用过滤器找到:',$('span.modal body')。过滤器(函数(){
返回$(this).data('id')==4;
}).长度);
})();代码>
模态体
模态体
不是使用单个选择器,而是使用.filter()
:
$(“#x”).data(“data”,“a”);
$(“#y”)。数据(“数据”,4);
var x2=$(“div”).filter(函数(){
返回$(this).data(“data”)!=null;
});
变量y4=$(“div”).filter(函数(){
返回$(this).data(“数据”)==4;
});
console.log(“Divs:,$”(“div”).length,“ID:”,x2.length,“ID==4:”,y4.length);
x2.添加类别(“框”);
y4.添加类别(“第4栏”)代码>
div{border:1px solid#CCC;}
.box{边框:1px纯绿色;}
.box4{边框:1px纯红色;}
x
Y
y
不是使用单个选择器,而是使用.filter()
:
$(“#x”).data(“data”,“a”);
$(“#y”)。数据(“数据”,4);
var x2=$(“div”).filter(函数(){
返回$(this).data(“data”)!=null;
});
变量y4=$(“div”).filter(函数(){
返回$(this).data(“数据”)==4;
});
console.log(“Divs:,$”(“div”).length,“ID:”,x2.length,“ID==4:”,y4.length);
x2.添加类别(“框”);
y4.添加类别(“第4栏”)代码>
div{border:1px solid#CCC;}
.box{边框:1px纯绿色;}
.box4{边框:1px纯红色;}
x
Y
y
change$('.modalbody[data id=4]')代码>到$('.modal body[data id=4]')
@AlivetoDie这是一个属性选择器,但标记中没有数据id
属性,因此这不起作用。@Andreas这表明dup与您先前的评论完全相反-没有数据-属性。@freedomn-m问题的答案正好符合此要求:,@Andreas感谢您的澄清-问题本身并不相同,答案也不相同-但正如您所说,有合适且相关的响应更改$('.modalbody[data id=4]')代码>到$('.modal body[data id=4]')
@AlivetoDie这是一个属性选择器,但标记中没有数据id
属性,因此这不起作用。@Andreas这表明dup与您先前的评论完全相反-没有数据-属性。@freedomn-m问题的答案正好符合此要求:,@Andreas感谢您的澄清-问题本身不一样,答案也不一样-但正如您所说,有合适且相关的回答Hanks,几分钟前我发现了文章宽度的过滤功能。谢谢,几分钟前我发现了文章宽度的过滤功能。已将文章标记为重复。过滤器
功能解决了这个问题。ThanksAlready将该邮件标记为重复。过滤器
功能解决了这个问题。谢谢