我相信这回答了您的第一个问题和第二个问题。
它为您提供“bm2”类的“openParen”和“closeParen”内的跨度,并将文本存储在数组中。 (这仅捕获括号,因为只有括号位于跨度内。)
var open = $('span[class="openParen bm2"]')
var spans = open.nextUntil('span[class="closeParen bm2"]')
var inside = []
$.each(spans, function(i, span){
inside.push($(span).html())
})
alert(inside.join('-'))
这里的例子:jsFiddle http://jsfiddle.net/vKxhR/3/
EDIT
不确定你将如何“在跨度标签之间”执行操作,我首先获取父 div 元素的 html,并使用正则表达式传递跨度:
var allcontent = $('span[class="openParen bm2"]').parent().html()
var betweenSpan = allcontent.split(/<span class="openParen bm2">[^<]*<\/span>|<span class="closeParen bm2">[^<]*<\/span>/)[1]
var valuesArray = betweenSpan.split(/<[^>]*>/)
为您提供 js 数组:
[" ", "(", "x>1", ")", " && ", "(", "x<10", ")", " "]
这里的例子:jsFiddle http://jsfiddle.net/vKxhR/4/
绝对不漂亮。
更好的解决方案是重新考虑 html 标签的结构(即将您想要捕获的值放入某些标签中!)
无论如何,够了,我就交给你了。