2
<ul class="header">
    <li class="header-text">Head1</li>
    <li class="header-text"><a href="#">line11</a></li>
    <li class="header-text"><a href="#">line12</a></li>
    <li class="header-text"><a href="#">line13</a></li>
    <li class="header-text"><a href="#">line14</a></li>
    <li class="header-text"><a href="#">line15</a></li>
<ul>
<ul class="header">
    <li class="header-text">Head2</li>
    <li class="header-text"><a href="#">line21</a></li>
    <li class="header-text"><a href="#">line22</a></li>
    <li class="header-text"><a href="#">line23</a></li>
    <li class="header-text"><a href="#">line24</a></li>
    <li class="header-text"><a href="#">line25</a></li>
<ul>

「ul」をクリックすると、「Head1」または「Head2」として出力する必要があります。

4

4 に答える 4

2

私が間違っていなければ、あなたliは子供がいないことを望みますa

だから使用:notして:has

$('li:not(:has(a))')

ULクリックの場合

$('ul').on('click',function(){
   var li_wihtout_a = $(this).find('li:not(:has(a))');
   console.log(li_wihtout_a);
});
于 2013-03-25T11:41:57.737 に答える
1

最初の子供のテキストを取得したいだけなら、それはかなり簡単です。

jsFiddle

JS

$('.header').click(function () {
    alert(this.children[0].innerHTML);
});

<ul>また、タグを正しく閉じていないことに気づきました。

于 2013-03-25T11:43:17.823 に答える
1

使い方は簡単.closest():eq()
http://api.jquery.com/eq-selector/http://api.jquery.com/closest/

LIVE DEMO

$('.header li a').click(function( e ) {

  e.preventDefault(); // prevent default browser action on anchors
  var desiredText = $(this).closest('.header').find('li:eq(0)').text();
  alert( desiredText );

} );
于 2013-03-25T11:48:59.953 に答える
0

マークアップに一貫性があり、上記のようになっている場合は、:firstセレクターを使用します

于 2013-03-25T11:39:19.717 に答える