作成しようとすると <div sort="xx">
この関数によって:
$("<div>",{sort:x})
jQueryは「ソート」パラメータを無視して取得します <div>
のみ。属性設定fnで作ると.attr("sort","xxx")
大丈夫です。なぜそれが起こるのですか?
P/S: 別の属性は正常に機能しますが、「ソート」に変更した理由ですが、「ソート」属性とは何ですか? (jQueryUI を使用しません)
回答:
回答№1は1これは、jQuery がチェックしているかどうかを確認するためです。指定されたプロパティのメソッドかどうか、対応するメソッドがある場合は、指定された値でそのメソッドを呼び出し、そうでない場合は次を使用して値を設定します .attr()
方法。あなたの場合、 sort
メソッドは、指定された値で関数を呼び出し、使用してプロパティを設定しません .attr()
方法。
// For internal use only.
// Behaves like an Array"s method, not like a jQuery method.
push: push,
sort: arr.sort,
splice: arr.splice
// ...
// HANDLE: $(html, props)
if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
for ( match in context ) {
// Properties of context are called as methods if possible
if ( jQuery.isFunction( this[ match ] ) ) {
this[ match ]( context[ match ] );
// ...and otherwise set as attributes
} else {
this.attr( match, context[ match ] );
}
}
}
回答№2の場合は0
HTML 属性がないため、これはおそらく機能しません。 sort
. jQueryはおそらく有効なリストを通過しますHTML 属性であり、リスト内の属性のみを追加します。そのため、ソート属性は無視されます。 div 内にデータを保存する場合は、次のいずれかを設定できます。 data-sort
属性、経由:
$("<div>", {"data-sort":x});
またはjQueryを介してデータプロパティを設定するだけです .data()
属性の変更を必要としないメソッド:
$("<div>").data("sort", x);