if(ajaxRequest.readyState == 4)
{
var response = ajaxRequest.responseText;
response=response.split('^^--^^');
var buname=response[5].split('^^|||^^');
//rest code
}
以下代码是上述我的ajax请求的响应。以下内容存储在变量
buname
中。** ** buname包含以下内容:<li rel="Particulier" onclick="javascript:tabledata('','buunits','3','single','','','','','','','');" style="height:16px">
<a href="#">Particulier</a>
-------------^
</li>
<li rel="PLH" onclick="javascript:tabledata('','buunits','1','single','','','','','','','');" style="height:16px">
<a href="#">PLH</a>
---------------^
</li>
我想做的事:
我想在javascript字符串或数组中获取定位标记的值。
期望的输出:(Particulier,PLH)
到目前为止,我已经尝试了什么:从SO的答案之一中,我尝试了以下代码,但由于我在给定的代码中未定义任何类,因此无法正常工作。
var elems = document.querySelectorAll('.email');
for(var i = 0; i < elems.length; i++) {
var elem = elems[i];
alert(elem.firstChild.getAttribute('href').substr(7));
}
我需要JavaScript解决方案,请不要提供jquery解决方案。
提前致谢。
最佳答案
您可以对单个元素而不只是文档使用querySelectorAll:
var response = "<li rel=\"Particulier\" onclick=\"javascript:tabledata('','buunits','3','single','','','','','','','');\" style=\"height:16px\">\n <a href=\"#\">Particulier</a>\n -------------^\n </li>\n<li rel=\"PLH\" onclick=\"javascript:tabledata('','buunits','1','single','','','','','','','');\" style=\"height:16px\">\n <a href=\"#\">PLH</a>\n </li>";
// skip the above in your normal environment, of course; here for example purposes :)
var ul = document.createElement("ul");
ul.innerHTML = response;
var links = ul.querySelectorAll("a");
// links now contains a list of the anchor tags, i.e. [<a href="#">Particulier</a>, <a href="#">PLH</a>]
var link_texts = [];
for (var i = 0; i < links.length; i++)
{
link_texts.push(links[i].innerHTML);
}
// link_texts now contains the text inside the links, i.e. ["Particulier", "PLH"]