-2

当我undefined尝试获取span.

这是我的代码:

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

3 回答 3

1

您必须传递一个选择器才能closest()从中获得任何结果。

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

$(obj).parent().attr('id');
于 2013-10-14T11:46:58.560 回答
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

于 2013-10-14T11:52:36.090 回答
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'
于 2013-10-14T13:15:38.980 回答