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"]

10-05 22:57
查看更多