找了好久,應該有比較簡單的,不多說,上代碼
頁面:
<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;
}
主要借用別人的代碼。略顯粗糙。。見諒