ホームページ  >  記事  >  ウェブフロントエンド  >  jquery_jquery でのコンボボックスの複数選択に関する非互換性の問題の概要

jquery_jquery でのコンボボックスの複数選択に関する非互換性の問題の概要

WBOY
WBOYオリジナル
2016-05-16 17:07:201570ブラウズ

最近、IE10でjqueryを開発していましたが、jqueryのコンボボックスの複数選択の互換性がない問題についてまとめました。

コンボボックスの属性 "multiple:true" を設定すると、IE10 は複数選択を完了できず、次のようなエラーが表示されます:

コードをコピー コードは次のとおりです。

function _7e8(_7e9,_7ea){
var _7eb=$.data(_7e9,"combobox"); 🎜>var opts=_7eb.options ;
var _7ec=$(_7e9).combo("getValues");
var _7ed=_7ec.indexOf(_7ea "");//ここで 10650 行目にエラーが報告されました
if(_7ed>=0) {
_7ec.splice(_7ed,1);


つまり、この問題には、indexOf メソッドがサポートされていません。解決策:

1. ソース コードを変更します

上記のコードを


に変更します。
コードをコピーします コードは次のとおりです:
function _7e8(_7e9,_7ea){
var _7eb =$.data(_7e9,"combobox");
var opts=_7eb.options;
var _7ec=$(_7e9).combo("getValues"); ,str){
str = str "";
for(var i =0,l=arr.length;iif(arr[i] == str) return i;
}
return
})(_7ec ,_7ea); 2013-6-25 19:04 に更新
_7ec.splice(_7ed,1);
_7e9,_7ec)


2. メソッド



コードをコピーします
コードは次のようになります: if(!Array.prototype.indexOf){ 配列.prototype.indexOf = function(target){ for(var i=0,l =this.length;iif(this[i] === target) return i;
}
return -1;
}
}


実際には、最初の方法の方が便利なので、私は最初の方法を使用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。