Javascript 调用eval()时attr和prop之间的差异
我使用jquery-1.12.4库,调用eval()如下:Javascript 调用eval()时attr和prop之间的差异,javascript,jquery,eval,attr,prop,Javascript,Jquery,Eval,Attr,Prop,我使用jquery-1.12.4库,调用eval()如下: var obj = $(this).find('ul'); if ($(this).prop('class').substring(0,1) == 'c') { eval(obj.attr('url')); console.log(obj.prop('url')) console.log(obj.attr('url')) } else { eval(ob
var obj = $(this).find('ul');
if ($(this).prop('class').substring(0,1) == 'c') {
eval(obj.attr('url'));
console.log(obj.prop('url'))
console.log(obj.attr('url'))
} else {
eval(obj.prop('clr'));
obj.html('');
}
我认为回报是一样的,但实际上不是,他们回报了:
console.log(obj.prop('url')) //undefined
console.log(obj.attr('url')) //req_subfolder('/', '_', '1')
“req_子文件夹(“/”、“_”、“1”)是我想要的,但是为什么我不能使用prop()来获得我想要的呢?这是因为我调用了eval()?这是因为
prop()
检索jQuery对象中元素对象的属性,而url
不是有效的属性
如果您想在元素上定义自己的数据,我建议您使用data-*
,如下所示:
var obj = $(this).find('ul');
if ($(this).prop('class').substring(0,1) == 'c') {
eval(obj.attr('url'));
console.log(obj.prop('url'))
console.log(obj.attr('url'))
} else {
eval(obj.prop('clr'));
obj.html('');
}
console.log($('div').data('url')代码>
对不起,我忘了那个部分,已更新,谢谢!谢谢!成功了!试图找出prop/attr/data之间的区别,thx很多!:)没问题,很乐意帮忙。供参考:,