0

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()

4

1 に答える 1

3

マークアップでは、ターゲットliはクリックされた要素の祖父母ではなく、親要素の前の兄弟です:

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

メソッドを使用できますprev

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

thisまた、コードで window オブジェクトを参照している場合はthis、関数に渡すことができることに注意してください。

<a onclick="getInfo(this)">

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

http://jsfiddle.net/F8wt8/

属性の代わりにjQueryを使用しているため(s ID属性#から削除した後)、メソッドを使用できます。ulonclickclick

$('#listview li.details a').click(function(event){
   event.preventDefault();
   var info = $(this).parent().prev().text();
   // console.log(info);
})
于 2013-02-10T09:56:45.200 に答える