jquery如何获取span的文本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何获取span的文本?相关的知识,希望对你有一定的参考价值。

<html>
<head>
<SCRIPT language=javascript src="js/jquery-1.3.1.js"></SCRIPT>
<SCRIPT language=JavaScript>
var aa=$("#aa").val();
var cc=$("#aa").html();
var bb=$("#aa").text();
alert(aa);
alert(bb);
alert(cc);
</script>
</head>
<body>
<span id="aa">aaaa</span>
</body>
</html> 这3个都不行,一个是undefined 一个 空 另一个null用什么方法获取span的文本内容?

上面回答都没解决问题。解决这个问题,把你整段script放在<span>的下方就ok。如:<html>
<head>
<SCRIPT language=JavaScript src="js/jquery-1.3.1.js"></SCRIPT>
</head>
<body>
<span id="aa">aaaa</span><SCRIPT language=JavaScript>
var aa=$("#aa").val();
var cc=$("#aa").html();
var bb=$("#aa").text();
alert(aa);
alert(bb);
alert(cc);
</script>
</body>
</html>问题出在html是从上往下解析的,在解析到你js里的$("#aa")时,下面这个span还不存在,当然就undefined了。js在下面解析,span就有了。另外,jquery的做法是用ready函数包含这些代码,放哪就无所谓了。它的作用就是在加载完整个页面后才执行包含的js。
参考技术A

text()设置或返回所选元素的文本内容。

1、jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。由John 

Resig在2006年1月的BarCamp NYC上发布第一个版本。目前是由 Dave Methvin 领导的

开发团队进行开发。全球前10000个访问最高的网站中,有59%使用了jQuery,是目前最受

欢迎的JavaScript库。

2、SPAN技术主要是用来监控交换机上的数据流,大体分为两种类型,本地SPAN和远程

SPAN. ----Local Switched Port Analyzer (SPAN) and Remote SPAN (RSPAN),实现方

法上稍有不同。 利用SPAN技术我们可以把交换机上某些想要被监控端口(以下简称受控端

口)的数据流COPY或MIRROR一 份,发送给连接在监控端口上的流量分析仪,比如CISCO

的IDS或是装了SNIFFER工具的PC. 受控端口和 监控端口可以在同一台交换机上(本地SPAN

),也可以在不同的交换机上(远程SPAN)。

参考技术B 给span起个id,然后用$("#span的id").text(),如果想获得html代码,把text换成html就可以了。如果你觉得答案合理,请点击采纳,谢谢

获取元素jquery中的第一行文本

【中文标题】获取元素jquery中的第一行文本【英文标题】:getting the first line of text in an element jquery 【发布时间】:2011-11-14 21:52:49 【问题描述】:

我有一个这样的示例元素:

<div id="element">
  Blah blah blah.
  <div>Header</div>
  ...
</div>

它也可以是这样的:

<div id="element">
  <span>Blah blah blah.</span>
  <h4>Header</h4>
  ...
</div>

我想获取元素内文本的第一行(松散地定义行)(Blah blah blah.)。它可能被包裹在子元素中,或者只是裸文本节点。我怎么做?谢谢。

【问题讨论】:

【参考方案1】:

使用contents()[docs] 方法获取所有子节点,包括文本节点,过滤掉任何空(或仅空白)节点,然后获取集合中的第一个。

var first_line = $("#element")
                       .contents()
                       .filter(function()  
                           return !!$.trim( this.innerHTML || this.data ); 
                       )
                       .first();

文本节点: http://jsfiddle.net/Yftnh/

元素: http://jsfiddle.net/Yftnh/1/

【讨论】:

您好,您能解释一下为什么要退货吗!!?什么是!!? 它转换为值的布尔等效值。修剪后,如果.innerHTML.data 返回一个空字符串,!! 会将其转换为布尔值false,因为空字符串被认为是“假”值。任何非空字符串都将生成true。 ***.com/questions/4686583/… +1 来自我,但性能谨慎的人可能想要考虑使用 $.each() 而不是 filter()。这对我来说有点晚了,但是jsfiddle.net/AndyE/Yftnh/3 就是一个例子(忽略修订版 2,我在这里半睡半醒!) @Andy E:不错。也很好地使用了逗号运算符。 @Harry:它只是让您在找到非空节点后停止循环。对于.filter(),您必须让循环为.contents() 返回的每个元素运行。 @Andy E:为了好玩,这里有一个没有逗号的return !$.trim((first_line = this).innerHTML||this.data); :)【参考方案2】:

这是给你的想法。当然,如果你想要获取的行之前有 h4 元素:

var content = $('#element').html();
var arr = content.split('<h4>');
console.log(arr[0]);

【讨论】:

【参考方案3】:
var myElement = $("#element");
while(myElement.children().length > 0)

   myElement = myElement.children().first();

var firstText = myElement.text();

当然,假设文本被正确地包裹在一个元素中。您可以检查第一个元素之前是否有文本:

/\s*</.test(myElement.html())

【讨论】:

不适用于我认为的第一种情况,这将匹配标题而不是等等等等(也许应该选择更好的示例文本哈哈) 如果你得到 mytext,它会变得非常困难。我猜你需要递归遍历 DOM 的东西。它必须有多防弹?【参考方案4】:

先获取元素的内容

var content = $('#element').html();

然后使用换行符将文本拆分成一个数组

tmp = content.split("\n");

数组的第一部分是元素的第一行

var firstLine = tmp[0];

【讨论】:

我首先想到的是,什么换行符,但我在 Fx 中看到至少有。然而,依赖它是危险的。这是第一行:alert($("#element").text().split(/\n/)[1]) [0]th 是一个空字符串...jsfiddle.net/mplungjan/QquSp【参考方案5】:

计数器从 1 开始

myElement.text().split('\n')[1]

【讨论】:

以上是关于jquery如何获取span的文本?的主要内容,如果未能解决你的问题,请参考以下文章

jquery 获取元素span的值

转:Jquery如何获取某个元素前(后)的文本内容?

jquery如何获取标签本生的文本内容,不获取本身子级元素及子级元素的内容

怎样用js或jquery操作span的单击事件?

如何使用 jQuery 选择具有特定文本的中间节点:包含选择器?

Jquery获取span里的值并比较