jQuery 动态修改selected的值,jQuery.attr()和jQuery.prop()的区别(链接),*** is not a valid attribute name.

今天写前台代码时用到了select的option动态选择上一个下一个的问题,在这个过程中发现了一些坑:

在jQuery 1.6版本以后添加了jQuery.prop(),attr()方法和prop()方法是有区别的,感谢博主给本人解惑,下面是链接地址

博客园的一位大佬,链接在这里  废话不多说,上代码

原jQuery代码:

function nextbkcode(){
	var bkcode = $("select[name='baokaocode'] option:selected");
	var precode = bkcode.next();
	if(precode.length>0){
		bkcode.removeAttr("selected='selected'");
		precode.attr("selected='selected');
	}else{
		alert("当前已是最后一个**");
		return;
	}
	subform();
}

然后就悲剧了,在前台报了个异常

Uncaught DOMException: Failed to execute 'setAttribute' on 'Element': 'selected='selected'' is not a valid attribute name.

大概意思就是selected='selected'不是有效的属性名,查找了博主的文章后,将代码修改为一下代码

function nextbkcode(){
//选择当前选中option的jQuery对象
	var bkcode = $("select[name='baokaocode'] option:selected");
//查找下一个option对象
	var precode = bkcode.next();
//判断下一个对象是否为空,不能直接将对象放到条件里,这个jQuery对象不论是否为空,都会返回object,为true
	if(precode.length>0){
		bkcode.prop("selected",false);//此处移除selected属性
		precode.prop("selected",true);//给下一个元素添加selected属性
	}else{
		alert("当前已是最后一个**");
		return;
	}
	subform();
}

问题成功解决,也将其中的一个小坑注释写出来了,避免以后再跳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值