3

私がこのような要素を持っていることを考えると:

<p class="ELP">2/1/2013 - <a id="EL3" class="ELLink" href="/Event htms/Event.cshtml?title=Okmulgee Public Schools County Professional Day&amp;explanation=Okmulgee Public Schools County Professional Day.&amp;dateString=2-1-2013">City Public Schools County Professional Day</a></p>

なぜこの JavaScript/jQuery は機能するのでしょうか...:

$(".ELP").click(function (){
        var stringDate = $(this).text().substring(0, 8)
        console.log(stringDate)
    });

Console.log の生成: 2013 年 2 月 1 日

...そして、この JavaScript/jQuery はそうではありませんか?

$(".ELLink").click(function (){
        var stringDate = $(this).parentNode.text().substring(0, 8)
        console.log(stringDate)
    });

JavaScript エラーのため、Console.log は何も生成しません: Uncaught TypeError: Cannot call method 'text' of undefined

明らかに、正しい要素を「取得」していないことがわかりますが、なぜですか? 「a」要素の最初の親ノードは「p」要素ではありませんか? 私が理解している限り、要素の直接の親ノードに有効なcssセレクターはありません(少なくともクロスブラウザー/プラットフォーム互換性はありません)。または、それを使用するだけです。

何が表示されないのですか?

4

5 に答える 5

7

jQuery メソッドは、parent() と呼ばれます。

$(".ELLink").click(function (){
        var stringDate = $(this).parent().text().substring(0, 8)
        console.log(stringDate)
    });
于 2013-02-01T16:39:46.933 に答える
1

jQuery オブジェクトには parentNode プロパティがないためです。

var stringDate = $(this.parentNode).text().substring(0, 8);
于 2013-02-01T16:39:46.287 に答える
0

使用しない理由:

var stringDate = $(this).parent().text().substring(0, 8)

すでにjQueryを使用しているので、親関数を使用できます。

于 2013-02-01T16:40:15.850 に答える
0

parent()notを使用する必要がありますparentNode。このような:

$(".ELLink").click(function (){
    var stringDate = $(this).parent().text().substring(0, 8)
    console.log(stringDate)
});
于 2013-02-01T16:40:36.473 に答える
0

$(...)DOM 要素を返さず、DOM ノードを参照する配列のようなオブジェクトを返します。DOM ノードにはparentNode. jQuery インスタンスはそうではありません。

選択した要素の直接の親を選択する必要がある場合は、次を使用できますparent()

$(this).parent().text()...
于 2013-02-01T16:39:43.933 に答える