Javascript Can';不能用find捕捉元素

Javascript Can';不能用find捕捉元素,javascript,jquery,html,object,find,Javascript,Jquery,Html,Object,Find,我有这个部门: <div> <label>Big Name <span class="small">Suggestion text</span> </label> <input type="text" onfocus="getSuggestion(this);"> </div> 但它不起作用。我做错了什么?你不需要双倍的$(..) 试试这个 var span = f

我有这个部门:

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

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

你不需要双倍的
$(..)

试试这个

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

这个
在函数中被命名为
obj

$(这个)
应该是
$(obj)
,而且
父div
本身是一个jQuery元素

function getSuggestion(obj) {
    var father_div = $(obj).parent();
    var span = father_div.find("span").html();
}
.html()
不会返回jquery对象,而是返回父分区的html内容。如果要将引用保存到父分区,则必须拆分行:

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

随着越来越多的聪明人说把它改成obj,你也可以使用jquery.closest(选择器)


可能是因为
$(this)
的范围不正确。您正在传入
obj
,您的意思是调用
parent()
,而不是
$(this)
?问题是
this
没有意义,它必须是
var father\u div=$(obj).parent()在函数内部,否则它将无法工作。
function getSuggestion(obj) {
    var father_div = $(obj).parent();
    var span = father_div.find("span").html();
}
function getSuggestion(obj) {
    var father_div = $(obj).parent();
    var span = $(father_div ).find("span")
    span.html();
}
var span = $(this).closest('span').html();