0

メソッドを使用して、一致したセットの最初のアイテムattrの属性を取得することを知っています。たとえば、最初に一致した入力要素の name 属性を取得します。$('input').attr('name')

しかし、HTML 要素から属性を直接取得するにはどうすればよい$('input')[0]でしょうか。私は何かをしたいのですが、一致したセット内のアイテムではなく、jQuery の一致したセットのメソッドのみであるため$('input')[0].attr('name')、それは機能しません。attr

(ちなみに、これは、一致したセット内のアイテムを関数に渡し、関数内でそのアイテムの属性を表示できるようにしたいためです。)

4

2 に答える 2

3

[0]一致したセットから特定の要素を取得したいだけの場合は、次を使用しeq()ます。

$(selector).eq(0).attr('name');

nameによって返されるセットの最初の要素の属性を取得しますselector。もちろん、 the は、0そのセレクターによって返される任意の要素のインデックス番号に置き換えることができます。

:eq()同様に、セレクターを使用できます。

$('div:eq(0)').attr('name');

または、selectorが変数の場合:

$(selector + ':eq(0)').attr('name');

Alnitak が指摘するように、以下のコメントで:

eq を使用する場合は、ブラウザーが使用できるようにするためで.eq(n)はなく使用してください。後者は jQuery 拡張機能です。:eq(n)querySelectorAll()

もちろん、特定の名前やプロパティについては、DOM メソッドにフォールバックすることもできます。

$(selector)[0].name;

または:

$(selector)[0].getAttribute('name');

参考文献:

于 2012-07-16T21:21:47.880 に答える
1

実際の HTML オブジェクトがある場合でも、それを $(element) でラップすることで JQuery 化でき、attr() にアクセスできます。

var secondThing = $('input')[1]
foo(secondThing)

function foo(element){
var elem = $(element);
var name = elem.attr('name');

//or
name = element.getAttribute('name')

}
于 2012-07-16T21:32:24.063 に答える