Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中获取元素包含span标记之前的元素文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在jQuery中获取元素包含span标记之前的元素文本

Javascript 在jQuery中获取元素包含span标记之前的元素文本,javascript,jquery,html,Javascript,Jquery,Html,我希望文本包含两个变量,如: var a = "Bar" ; var b = "by year" ; Html: 芭比年 对于第一个变量,可以使用以下方法获取文本节点: var a = $('.heading').contents().filter(function() { return this.nodeType === Node.TEXT_NODE; }).text(); 对于第二个元素: var b = $('.ct').text(); 对于第一个变量,可以使用以下方法获取

我希望文本包含两个变量,如:

var a = "Bar" ;   
var b = "by year" ;
Html:

芭比年

对于第一个变量,可以使用以下方法获取文本节点:

var a = $('.heading').contents().filter(function() {
 return this.nodeType === Node.TEXT_NODE; 
}).text();
对于第二个元素:

var b = $('.ct').text();

对于第一个变量,可以使用以下方法获取文本节点:

var a = $('.heading').contents().filter(function() {
 return this.nodeType === Node.TEXT_NODE; 
}).text();
对于第二个元素:

var b = $('.ct').text();

您可以使用解构分配来获取
.firstChild
.textContent
.heading
.childNodes

let{0:{textContent:a},1:{firstChild:{textContent:b}}}=document.querySelector(“.heading”).childNodes;
log(`a:${a},b:${b}`)

Barby year
您可以使用解构赋值来获取
.firstChild
.textContent
.heading
.childNodes

let{0:{textContent:a},1:{firstChild:{textContent:b}}}=document.querySelector(“.heading”).childNodes;
log(`a:${a},b:${b}`)

Barby year
假设h5只有两个包含文本的节点

您可以尝试以下操作(仅创建html元素不需要jQuery)

var$content=$(`
酒吧
按年
`);
变量[a,b]=
[]
.地图.电话(
$content[0]。子节点
,x=>x.textContent
)
.map(x=>x.trim())
.filter(x=>x!==“”)
;
警报(“a为:+a”);
警报(“b为:”+b)

假设h5只有两个包含文本的节点

您可以尝试以下操作(仅创建html元素不需要jQuery)

var$content=$(`
酒吧
按年
`);
变量[a,b]=
[]
.地图.电话(
$content[0]。子节点
,x=>x.textContent
)
.map(x=>x.trim())
.filter(x=>x!==“”)
;
警报(“a为:+a”);
警报(“b为:”+b)

这是解决此问题的另一个选项:

let a = jQuery(".heading").clone().find('span').remove().end().text();

let b = jQuery(".heading > span").text()
关于
a
执行克隆,然后从克隆中删除范围,并捕获被操纵克隆的文本


关于
b
,将提取
标题的直接
span
子项的文本。

这是解决此问题的另一个选项:

let a = jQuery(".heading").clone().find('span').remove().end().text();

let b = jQuery(".heading > span").text()
关于
a
执行克隆,然后从克隆中删除范围,并捕获被操纵克隆的文本


关于
b
将提取
标题的直接
子元素span
的文本。

可以使用元素的简单属性,如
h5Elem。firstChild
将返回
H5
的第一个子元素,即
TextNode
,然后返回
h5Elem.firstElementChild.textContent
返回
H5
的第一个HTML元素,它是
span
,您可以得到它的
textContent
。好的@Krusader。。,感谢您可以使用元素的简单属性,如
h5Elem.firstChild
-将返回
H5
的第一个子元素,即
TextNode
,然后返回
h5Elem.firstElementChild.textContent
返回
H5
的第一个HTML元素,它是
span
,您可以得到它的
textContent
。好的@Krusader..,谢谢