0

私はjQueryを学んでいるので、おそらくある種の誤解です。

javascriptを検討してください:

var controls = $("#" + val.controltovalidate);
var input = controls[0];
var parent = input.parent();                
var pos = parent.position;

最初に、特定のIDを持つ要素のリストを取得します。これは、ASP.NETにあるため、1つの要素であることがわかっていますが、jQueryを使用しているため、リストが表示されます。また、動作させるために「#」を付加します。より良い方法はありますか?

次に、実際の要素(0の配列)を取得します。3HtmlInput 番目に、コンテナーを見つけたいので、実行していinput.parent()ます。この呼び出しはNULLを返します。なんで?P私はこれの親がいることを知っていますinput

4

3 に答える 3

1

使用するclosest();

var parent = $(input).closest('p');
于 2013-03-23T03:33:58.827 に答える
1

$("#" + val.controltovalidate).parent()直接の親を検索する場合、および祖先階層$("#" + val.controltovalidate).closest('p')の最初の要素を検索する場合は、これを実行する必要があります。<p>

各jQueryオブジェクトはコレクションであるため、その事実を気にせず、必要なことは何でも実行してください。1つのDOM要素にのみ影響します。

2番目の質問:jQueryコレクションのインデックスを介して要素にアクセスすると、DOM要素が返されます。それがあなたが得ている理由ですHTMLInputElement

于 2013-03-23T03:44:13.720 に答える
0

次のように最後の2行を試してください。

 var pos = $(input).parent().position();
于 2013-03-23T03:44:48.327 に答える