无法使用find捕获元素

时间:2013-02-27 08:59:00

标签: javascript jquery html object find

我有这个div:

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

我要做的是在输入焦点上使用“getSuggestion()”函数获取'span'中的文本。

这是我试过的:

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

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

但它不起作用。我做错了什么?

4 个答案:

答案 0 :(得分: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 ...

答案 1 :(得分:0)

$(this)应为$(obj)father_div本身也是jQuery元素

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

答案 2 :(得分:0)

.html()不返回jquery对象,而是返回father_div的html内容。如果你想把它保存到它,你就要分开一行:

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

并且更聪明的人说将此更改为obj

答案 3 :(得分:0)

您也可以使用jquery .closest(selector)

var span = $(this).closest('span').html();