0
$(function(){
    var z = document.body.children[0];
    var x=$("li", z);
    x.name="Johnny";
    alert(x.prop(name));
});
  1. xulの最初の要素内のすべての要素を含むオブジェクトである必要がありますbody。オブジェクトに含まれるものに関係なく、値を持つプロパティを追加し、prop()メソッドを使用してそれを表示したいのですが、うまくいかないようです。何故ですか?

  2. 以下を含むスクリプトを見ました: - jQuery オブジェクトの場合、変数名var $x = $("div");に追加する必要がありますか?$

4

4 に答える 4

1

ページ内の最初の ul 要素を選択するには、次のようにします。

$("ul:first li")

このようにして、ページの最初のリスト内のすべての行を選択します。

要素に任意のデータを格納するには、次のようにメソッド データを使用できます。

$("element").data('key', 'value');

データを取得するには:

$("element").data('key');

詳細については、データ メソッドを参照してください。

本当に属性を追加したい場合は、attr メソッドを使用できます。これは data メソッドと同じように機能しますが、DOM に反映されます。

于 2013-03-07T16:49:39.983 に答える
1

li最初の要素にすべての要素が必要な場合ulは、これでうまくいくはずです。

var elements = $("ul:eq(0) li");

これが実際に動作している非常に簡単な例を次に示します。


プロパティの設定に関しては、実行できelement.name = "test"、問題なく動作します。ただし、理解する必要があるのは、これはnamejquery コレクション オブジェクトにプロパティを設定することであり、実際の要素には設定しないということです。

ただし、できることは、プロパティを次のように設定することです。

elements.prop("name", "test");

そして、次のようにアクセスします:

var name = elements.prop("name");//name will be "test"

これが実際の例です


コメントで述べたように、変数の前に$. しかし、これは、どの変数が JQuery オブジェクトであるかを簡単に確認するのに役立ちます。

于 2013-03-07T16:41:48.427 に答える
0

番号 1.xは jQuery オブジェクトです。そのインスタンスにnameプロパティを追加し、name定義されていませんが使用しています。

jQuery で取得した要素のプロパティを変更する場合は、次の方法があります。

$('selector').prop('property', 'value');
$('selector').attr('attribute', 'value');
$('selector').get(index).property = "value";

番号 2. いいえ、する必要はありません。$プレフィックスは、コードを読みやすくするための単なる規則です。
jQueryの変数で$を使用する特定の理由はありますか

于 2013-03-07T16:41:38.990 に答える
0

@musefan answer のセレクターを使用すると、返されたコレクションを取得し、attr()メソッドを使用して、選択した各項目に属性と値を追加できます。ただし、実際にそこにある「すべての」要素を取得するために、彼のセレクターを少し変更しました (将来の訪問者が疑問に思う場合に備えて)。

var elements = $("ul:eq(0)").children();
elements.attr("attrName", value);

したがって、タイトルを設定したい場合:

var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny");

おそらくこれらの値を警告したくないでしょう.ブラウザはページで警告を許可しないように頼むかもしれません.each().

var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny").each(function(){
     alert($(this).attr("title");
});
于 2013-03-07T16:50:48.900 に答える