因为我很难列出所有跨度,哪个有class =“ansspans”,可能是一个或多个跨度,“ansspans”类将在那里,我需要得到所有跨度及其内容并迭代它。你能告诉我怎么做,Regex,Jquery,还有什么好的,
内容将在字符串变量(不在DOM中),因为IE 9忽略了属性的引号,所以我不能使用getelementbyclass名称,我按照这个答案,得到引号InnerHTml workAround,现在显示引号。所以我需要在一个数组中得到所有类的ansspans,这样我就可以迭代它得到每个跨度的文本内容
<span id="sss_ctl00_ctl06_lblanswertext">
assignment
<span class="ansspans">submission </span>
date : 10:07:51 AM
</span>
在这个例子中,预期输出将是1个span对象,因此我可以迭代它
更新:我不能使用DOm,因为我们处于怪癖模式,所以9将忽略属性引号,我无法通过类名使用getelement遍历。所以,我需要匹配字符串变量中的所有跨度。希望大家都明白我的问题;(
答案 0 :(得分:1)
以下 jQuery 选择器$('span.ansspans')
将所有页面的<span class="anspans">
。
如果您需要某个特定元素的内容,请添加相应选择器的前缀,即$('#sss_ctl00_ctl06_lblanswertext span.ansspans')
答案 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 : 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()