2

これは、より大きなアプリケーションの一部です。
私がやろうとしているのは、Jqueryspan1を使用してフォームを送信するときにテキストを取得することです。.closest

ただし、の結果span1 = $(this).closest("span").html()は未定義です。

HTML

<span class="span1">
    texthere
</span>
<div>
    <div class="whatever">
        <form id="theform" action="#" method="POST">
            <input type="text" name="input1" />
        </form>
    </div>
</div>

Jクエリ

$(document).on("submit","#theform",function(){
    span1 = $(this).closest("span").html();
    input1 = $(this).find("input").val();
    alert(span1+" - "+input1);
    return false;
});

JSFFIDLE

を読んでいるときに未定義になるのはなぜ.closest .span1ですか?

4

4 に答える 4

1

.closest()要素の親 (祖先) を上に移動し、セレクターに一致する最初の要素で停止します。

Yourはタグ<form>の子ではないため、 0 要素を返します。<span>$(this).closest("span")

于 2013-07-24T15:14:01.337 に答える
0
span1 = $(this).parents().filter(function () {
    return $(this).siblings('.span1').length
}).first().siblings('.span1').html();
于 2013-07-24T15:28:43.783 に答える