如何从.html()返回值获取特定标签数据

时间:2016-01-08 15:36:41

标签: javascript jquery html

我有这个HTML,我从$('#article').html()得到它, 我真的不知道如何使用split()函数完成此任务:

<sometag1>some data1</sometag1>
<sometag2>some data2</sometag2>
<sometag13>some data3</sometag13>

所以我如何分割它并获得如下结果:

result=>some data1

我试过这个:

data1=$('#article').html().split('</sometag1>');
data1=$('#article').html().split('</sometag1>')[1].split('</sometag2>');
data1=$('#article').html().split('</sometag1>')[1].split('</sometag2>')[1].split('</sometag3>');

但这并没有真正起作用,我认为这不是一个非常好的代码:

所以任何想法如何做到这一点?

5 个答案:

答案 0 :(得分:2)

编辑:

更改问题后,这就是您想要的:(下面的演示)

data1 = $('#article').html().split("<sometag1>")[1].split("</sometag1>")[0]

这样做:$('#article').find('sometag1').text()

  • 首先获得父元素:$('#article')
  • 然后你会找到它的子元素:find('sometag1')
  • 最后你得到了它的文字内容:.text()

演示:

&#13;
&#13;
var data1 = $('#article').find('sometag1').text()

// What you want after edeting the question:
var data1 = $('#article').html().split("<sometag1>")[1].split("</sometag1>")[0]

console.log(data1)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="article">
  <sometag1>some data1</sometag1>
  <sometag2>some data2</sometag2>
  <sometag13>some data3</sometag13>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

Jquery的:

data1=$("#article > sometag1");
 data2=$("#article > sometag2");
 data3=$("#article > sometag2"); 
 /*if you want to get html inside tags then
then add .html() to each of lines up */

答案 2 :(得分:0)

Javascript解决方案

您可以使用getElementsByTagName("tagName")实现此目的,例如:

document.getElementsByTagName("sometag1")[0].textContent; //return some data1

或使用querySelector

document.querySelector('sometag1').innerText; //return some data1

querySelectorAll

document.querySelectorAll('sometag1')[0].firstChild.innerText; //return some data1

希望这有帮助。

答案 3 :(得分:0)

我也试过something尝试一下。

我的代码就像这样

var data1=$('#article');
console.log(data1);
var i=0;
var a={};
a[i++]=data1.find('sometag1').text();
a[i++]=data1.find('sometag1').text();
//can do it for any other <sometag> as well
console.log(a);

结果集是这样的

Object {0: "some data1", 1: "some data2"}

答案 4 :(得分:0)

使用代码片段在下面对所需数据进行grub。

&#13;
&#13;
var result = [];
$('#article > *').each(function(){result.push($( this ).text())})
console.log(result);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="article">
  <sometag1>some data1</sometag1>
  <sometag2>some data2</sometag2>
  <sometag13>some data3</sometag13>
</div>
&#13;
&#13;
&#13;

祝你好运!