2013-10-14 20 views
-2

當我嘗試獲取span的父母標識時,我得到的值爲undefined當我嘗試獲取範圍的父母標識時,我得到的未定義值

這是我的代碼:

<span id="test">sskdfj <span>test</span> asdkfwsfe</span> 
$(obj).closest().attr('id'); 
+10

你也需要發佈你的HTML。 – Andy

+2

...或去精神病學溢出... – Shomz

+0

我同意你需要發佈HTML,可能是最接近的返回值是未定義的,或者是最接近的值存在,但沒有屬性「id」導致未定義。 – it2051229

回答

1

你必須選擇傳遞給closest()從中得到任何結果。

如果您想要父元素,請使用parent()而不是closest()

$(obj).parent().attr('id'); 
+0

我使用了它,但是又一次出現了未定義的問題。 – user2870078

+0

適用於我:http://jsfiddle.net/H9Q7T/ - 最有可能的,'obj'的父親沒有ID。 – Quentin

+0

是它的工作我的整個代碼<跨度ID = 「spn8」> <跨越的onclick = 「changeText1(此,事件)」> [本說明是針對FMLA條件] 功能changeText1(OBJ,事件) { var pid = $(obj).parent()。attr('id') alert(pid); }請幫助我沒有得到錯誤 – user2870078

0

假設下面的HTML:

<div id="test"> 
    <span id="test_2"></span> 
</div> 

在你的代碼obj#test_2。你想得到#test。你應該給closest方法選擇一個元素,否則jQuery不知道要選擇什麼。

$("#test_2").closest("#test").attr('ID') 

或者,正如Quentin所述,如果這是您想要選擇的元素,請使用parent

$("#test_2").parent().attr('ID') 

看看這裏:FIDDLE

0

由於您使用jQuery,分離出你的JS代碼,並使用一個類。

<span id="spn8"> 
    <span class="clickable">[This note is for an FMLA condition]</span> 
</span> 

function changeText1(obj,event) { 
    var pid = $(this).parent().attr('id'); 
    alert(pid); 
} 

$('.clickable').click(changeText1); // 'spn8' 
相關問題