获取父母的父母的文字?

时间:2013-02-10 09:54:36

标签: jquery jquery-mobile

我在jQuery Mobile中有以下代码:

<ul data-role="listview" data-theme="d" id="#listview" data-divider-theme="d">
    <li data-role="list-divider" class="name">Mr. Sam</li>
            <li data-icon="false" class="details">
                       <a onclick="getInfo()">

在我的onclick上,我想访问Mr. Sam。以下是我在JS中尝试的以下代码:

var info = $(this).parent().parent().text();

因为,我点击了<a>,它的父级是<li>,而它的父级是<li>,其中包含Sam先生。但我做错了,因为alert(info);警告空白输出。 我需要改变什么?我甚至尝试过,.html()

1 个答案:

答案 0 :(得分:3)

在你的标记中,目标li不是被点击元素的祖父,它是父元素的先前兄弟:

<li data-role="list-divider" class="name">Mr. Sam</li>
                                               ---^

您可以使用prev方法:

var info = $(this).parent().prev().text(); 

另请注意,在您的代码this引用窗口对象时,您可以将this传递给您的函数:

<a onclick="getInfo(this)">

function getInfo(elem) {
   var info = $(elem).parent().prev().text(); 
}

http://jsfiddle.net/F8wt8/

由于您使用jQuery(从# ID属性中删除ul后)而不是onclick属性,因此您可以使用click方法。

$('#listview li.details a').click(function(event){
   event.preventDefault();
   var info = $(this).parent().prev().text();
   // console.log(info);
})