/ / Jquery:$( '<div>'、{sort:x})は機能しません。 「ソート」属性とは何ですか? -jquery、dom、属性

Jquery:$( '<div>'、{sort:x})は機能しません。 'sort'属性とは何ですか? - jquery、dom、attributes

作成しようとすると <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);