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 回答