我如何获得文本所属的span类ID?

HTML (contenteditable div)

int main(){
if( (x>1) && (x<10) )
statement;
}

我在行中使用了xloop,在每行中使用了yloop。

1.)我怎么能得到第二个( (xloop:1 yloop:7)w / c的span classbm2

2.)我如何获得span的BETWEEN bm2 ,我将在每个循环中并将跨度的文本存储在数组中

JS

 for( var x=0; x div ').size(); x++ ){ var inlineDiv_num_text = $('#board > div ').eq(x).text(); for( var y=0; y div ').eq(x).text().length; y++){ kword_search = kword_search + inlineDiv_num_text.charAt(y); // i will detect the target paren here if(/(if|while|for)\s*\($/.test(kword_search)){ //know w/c span the ( belongs to //get the bm span inside of it } } } 

目标:将bm分组存储在数组中

  array[0] = ( (x>1) && (x1) array[2] = (x<10) 

我相信这可以回答你的第一个和第二个问题。

它为您提供了“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

编辑

不知道你将如何做“跨度标签之间”,我首先得到父div元素的html,并使用正则表达式传递跨度:

 var allcontent = $('span[class="openParen bm2"]').parent().html() var betweenSpan = allcontent.split(/[^<]*<\/span>|[^<]*<\/span>/)[1] var valuesArray = betweenSpan.split(/<[^>]*>/) 

给你js数组:

 [" ", "(", "x>1", ")", " && ", "(", "x<10", ")", " "] 

示例: jsFiddle

绝对不漂亮。

更好的解决方案是重新考虑html标签的结构(即将要捕获的值放在某些标签内!)

无论如何,这就够了,我会把它留给你。