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的文本内容?
<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如何获取标签本生的文本内容,不获取本身子级元素及子级元素的内容