如何使用特定的类名称获取字符串变量中的所有跨度

时间:2012-02-23 05:49:10

标签: javascript jquery regex

因为我很难列出所有跨度,哪个有class =“ansspans”,可能是一个或多个跨度,“ansspans”类将在那里,我需要得到所有跨度及其内容并迭代它。你能告诉我怎么做,Regex,Jquery,还有什么好的,

  1. 内容将在字符串变量(不在DOM中),因为IE 9忽略了属性的引号,所以我不能使用getelementbyclass名称,我按照这个答案,得到引号InnerHTml workAround,现在显示引号。所以我需要在一个数组中得到所有类的ansspans,这样我就可以迭代它得到每个跨度的文本内容

    <span id="sss_ctl00_ctl06_lblanswertext">
        assignment 
        <span class="ansspans">submission </span>
        date : &nbsp;10:07:51 AM
    </span>
    
  2. 在这个例子中,预期输出将是1个span对象,因此我可以迭代它

    更新:我不能使用DOm,因为我们处于怪癖模式,所以9将忽略属性引号,我无法通过类名使用getelement遍历。所以,我需要匹配字符串变量中的所有跨度。希望大家都明白我的问题;(

3 个答案:

答案 0 :(得分:1)

以下 jQuery 选择器$('span.ansspans')所有页面的<span class="anspans">

如果您需要某个特定元素的内容,请添加相应选择器的前缀,即$('#sss_ctl00_ctl06_lblanswertext span.ansspans')

如果需要以更动态的方式完成此操作,请查看find()filter()etc等功能。

答案 1 :(得分:1)

(正如之前在此网站上所述,有时可以使用正则表达式解析有限的已知的 xml集合)

   //assumes no <span id="stupid>" class="ansspans">, and no embedded span.ansspans
        var data = ' <span id="sss_ctl00_ctl06_lblanswertext"> assignment    \n date : &nbsp;10:07:51 AM    \n     <span class="ansspans">ONE has a new \n line in it</span><span class="ansspans">TWO</span><span class="ansspans">3 </span><span class="ansspans">4 </span><span class="ansspans">5 </span>';
        var myregexp = /<span[^>]+?class="ansspans".*?>([\s\S]*?)<\/span>/g;
        var match = myregexp.exec(data);
        var result = "spans found:\n";
        while (match != null) {
            result +=  "match:"+RegExp.$1 + ',\n';
            match = myregexp.exec(data);
        }
        alert(result);

(编辑以捕获内部html而不是整个标记)

答案 2 :(得分:0)

使用jquery的解决方案

var tempArray = $("span.ansspans");//this will select all the span elements having class 'ansspans' and return them in an array
var len = tempArray.length;//calculate the length of the array
for(var index = 0;index<len;index++){
    var reqString = $(tempArray[index]).html();
}

这些字符串值既可以放在数组中,也可以只在那里使用。

如果你想要textContent,请使用.text()而不是.html()