如何从span中的类中检索数据?

时间:2016-12-07 23:01:14

标签: javascript html

我需要从HTML代码中检索部分数据。这是:

<span
class="Z3988" style="display:none;"
title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;
rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.genre=article&amp;
rft.atitle=Parliamentarism Rationalized&amp;
rft.title=East European Constitutional Review&amp;
rft.stitle=E. Eur. Const. Rev.&amp;rft.date=1993&amp;
rft.volume=2&amp;rft.spage=33&amp;rft.au=Tanchev, Evgeni&amp;
rft_id=http://heinonline.org/HOL/Page?handle%3Dhein.journals/eeurcr2%26id%3D33%26div%3D%26collection%3D">
</span>

我试图使用例如:

document.querySelector("span.Z3988").textContent

document.getElementsbyClassName("Z3988")[0].textContent

我的最终目标是得到以后的内容:

  1. rft.atitle(Parliamentarism Rationalized
  2. rft.title(East European Constitutional Review
  3. rft.date
  4. rft.volume
  5. rft.spage
  6. rft.au
  7. 我该怎么做?我想避免RegEx。

4 个答案:

答案 0 :(得分:1)

获取span的标题文本

=吐出,使用不会出现在我准备的字符串^中的字符加入,为;执行相同操作,并使用^处的唯一字符进行拆分在这种情况下,然后在每个偶数索引处选择值。如果你需要字符串加入它。

示例Sinppet:

&#13;
&#13;
var spanTitle = document.getElementsByClassName("Z3988")["0"].getAttribute("title");

var data = spanTitle.split("=").join("^").split(";").join("^").split("^")

var finaldata = data.filter(function(d, index) {
  return !!index % 2;
})

console.log(finaldata)
&#13;
<span class="Z3988" style="display:none;" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;
rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.genre=article&amp;
rft.atitle=Parliamentarism Rationalized&amp;
rft.title=East European Constitutional Review&amp;
rft.stitle=E. Eur. Const. Rev.&amp;rft.date=1993&amp;
rft.volume=2&amp;rft.spage=33&amp;rft.au=Tanchev, Evgeni&amp;
rft_id=http://heinonline.org/HOL/Page?handle%3Dhein.journals/eeurcr2%26id%3D33%26div%3D%26collection%3D">
</span>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您标题中的内容看起来像是一个网址搜索查询...

&#13;
&#13;
var elm = document.querySelector('.Z3988')
var params = new URLSearchParams(elm.title) // parse everything

console.log(...params) // list all
console.log(params.get('rft.title')) // getting one example
&#13;
<span class="Z3988" style="display:none;" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.genre=article&amp;rft.atitle=Parliamentarism Rationalized&amp;rft.title=East European Constitutional Review&amp;rft.stitle=E. Eur. Const. Rev.&amp;rft.date=1993&amp;rft.volume=2&amp;rft.spage=33&amp;rft.au=Tanchev, Evgeni&amp;rft_id=http://heinonline.org/HOL/Page?handle%3Dhein.journals/eeurcr2%26id%3D33%26div%3D%26collection%3D"></span>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果您尝试抓取title属性:

document.getElementsByClassName("Z3988")[0].getAttribute("title");

答案 3 :(得分:0)

您以文本形式输出内容的方式非常糟糕。您可以尝试将文本的每个部分打印到元素属性中,并使用element.getAttribute()检索每个部分。

前:

<span id='whatever' stitle='content' spage='content'></span>

并从所选元素中检索。

对于你拥有它的方式,你可能想尝试将该文本放入变量并将值拆分为:

var element_text = document.getElementsbyClassName("Z3988")[0].textContent;
var element_specifics = element_text.split(';'); // Separate the text into array splitting by the ';'