码迷,mamicode.com
首页 > Web开发 > 详细

js控制select返回原先选择的状态

时间:2019-09-01 14:45:23      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:selected   div   art   别人   log   代码   sel   append   cti   

找了好久,应该有比较简单的,不多说,上代码

页面:

<div id="testArea">
<select class="selq" onchange="startchosee(this)" >
<option value="1">选择1</option>
<option value="2">选择2</option>
<option value="3">选择3</option>
<option value="4">选择4</option>
<option value="5">选择5</option>

</select>

</div>

js控制:

var thisElement=$("#testArea").html();
var beforeElement="";

 

function startchosee(obj){


if(confirm("是否改变"+$(obj).find("option:selected").html())){

}else{
if(beforeElement!=""){
$("#testArea .selq").remove();
$("#testArea").append(parseDom(beforeElement));
}
}
beforeElement=nodeToString(obj);
thisElement=obj;
}

 

至于为啥做这两个转换,因为jquery源码理解不够深刻
//String 转为dom
function parseDom(arg) {

   var objE = document.createElement("div");

   objE.innerHTML = arg;

   return objE.childNodes;

};
//转为dom转String

function nodeToString ( node ) {

console.log($(node).find("option:selected").val())
var tmpNode = document.createElement( "div" );
tmpNode.appendChild( node.cloneNode( true ) );
$(tmpNode).find("option").each(function(){
$(this).attr("selected",null);
});
$(tmpNode).find("option:eq("+($(node).find("option:selected").val()-1)+")").attr("selected",true);
var str = tmpNode.innerHTML;
tmpNode = node = null; // prevent memory leaks in IE
console.log(str)
return str;
}

 

主要借用别人的代码。略显粗糙。。见谅

 

js控制select返回原先选择的状态

标签:selected   div   art   别人   log   代码   sel   append   cti   

原文地址:https://www.cnblogs.com/xy-dsh/p/11441981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!