1

私はこのdivを持っています:

<div>
    <label>Big Name
        <span class="small">Suggestion text</span>
     </label>
     <input type="text" onfocus="getSuggestion(this);">
</div>

私がやろうとしているのは、入力フォーカスで「getSuggestion()」関数を使用して「スパン」内のテキストを取得することです。

これが私が試したことです:

function getSuggestion(obj) {
    var father_div = $(this).parent();

    var span = $(father_div ).find("span").html();
}

しかし、うまくいきません。私は何を間違っていますか?

4

4 に答える 4

3

ダブルはいらない$(..)

これを試して

 var span = father_div.find("span").html();

function getSuggestion(obj) {
  var father_div = $(obj).parent();

  var span = father_div.find("span").html();
}

this関数内の名前はobj...

于 2013-02-27T09:00:23.833 に答える
0

jquery オブジェクトを返すのではなく、.html()father_div の html コンテンツを返します。参照を保存したい場合は、行を分割する必要があります。

function getSuggestion(obj) {
    var father_div = $(obj).parent();
    var span = $(father_div ).find("span")
    span.html();
}

より賢い人が言うように、これを obj に変更します

于 2013-02-27T09:02:46.457 に答える
0

$(this)である必要が$(obj)あり、father_divそれ自体も jQuery 要素です

function getSuggestion(obj) {
    var father_div = $(obj).parent();
    var span = father_div.find("span").html();
}
于 2013-02-27T09:01:31.917 に答える
0

jquery .closest(selector) を使用することもできます

var span = $(this).closest('span').html();
于 2013-02-27T09:05:28.793 に答える