jQuery得到.text()但不是span中的文本

大家好,这是我的jQuery部分,为我的页面制作菜单。

function fetchmenus() { $.getJSON('sys/classes/fetch.php?proccess=1', function(status) { // get line status $.each(status, function(i, item) { if (item.id == "1") { active = "class='active'"; lastpageid = item.href; } else { active = "class='nonactive'"; } $('
  • ' + item.menuTitle + '
  • ').appendTo('#menuarea ul#mainmenu'); }); }); }

    我想要做的是在<a但在< <a之前获取

    目前我是这样做的:

     $('ul#mainmenu li').live('click', function(event) { //alert(this.id); $("li#" + lastpageid).removeClass(); fetchpage(this.id); $("#largemenutop").html($(this).text()); $("li#" + this.id).addClass("active"); lastpageid = this.id; });; 

    有一个更好的方法吗?

    是的,您只能选择元素的文本内容,如下所示:

      var text = ''; $('a').contents().each(function(){ if(this.nodeType === 3){ text += this.wholeText; } }); $("#largemenutop").html(text); 

    很好的解决方案赫尔曼,虽然它可以简化为这样的事情:

    JS

     $('li a').contents().filter(function() { return this.nodeType == 3; }).text(); 

    HTML

     
  • Applehi Juice
  • 将返回Apple Juice

    小提琴: http : //jsfiddle.net/49sHa/1/