如何在jQuery中使用自定义属性循环选择
我有一个带有自定义属性的select下拉列表,如下所示:如何在jQuery中使用自定义属性循环选择,jquery,each,attr,Jquery,Each,Attr,我有一个带有自定义属性的select下拉列表,如下所示: <select id="myselect"> <option value="1" custattr="first">First One</option> <option value="2" custattr="second">Second One</option> <option value="3" custattr="third">Third One</opt
<select id="myselect">
<option value="1" custattr="first">First One</option>
<option value="2" custattr="second">Second One</option>
<option value="3" custattr="third">Third One</option>
</select>
但我会遇到如下错误:
未捕获的TypeError:无法读取未定义的属性“each”
如何循环测试每个
custatr
值?您必须像下面那样迭代它
jQuery('#myselect option').each(function(){
if (myvalue != jQuery(this).attr('custattr')) {
//do something
});
.attr()
将返回一个字符串
。因此,它的原型链中不会有一个名为each
的函数。如果您想获取属性attr'custatr'
//jquery
$(document).on('change','select',function(){
var attr= $(this).find('option:selected').attr('data-custattr');
alert(attr)
});
// JS
document.querySelector('select').onchange = function(){
var attr= this.selectedOptions[0].getAttribute('data-custattr');
alert(attr);
};
谢谢,我想这是答案的一部分,但是当我做这个更改时,我现在得到一个错误,说
无法读取未定义的@Stephen的属性'val',只需使用if(myvalue!=jQuery(this).attr('custattr'))
不需要.val()
哦,糟了!谢谢他们一让我回答就接受了。@Satpal谢谢伙计。我发了这封信后就出去了。我没注意到。
//jquery
$(document).on('change','select',function(){
var attr= $(this).find('option:selected').attr('data-custattr');
alert(attr)
});
// JS
document.querySelector('select').onchange = function(){
var attr= this.selectedOptions[0].getAttribute('data-custattr');
alert(attr);
};