查找包含带括号的文本的元素

时间:2014-12-21 18:00:01

标签: jquery coffeescript contain

我有html网站,我想找到带括号的文字元素。例如,我有这样的跨度div:

#container
 .div
   %span= "example (1)"
 .div
   %span= "example (22)"

我希望获得带有文字“示例(22)”的范围。我有用来获取这些元素的方法。我尝试了以下解决方案:

 getElement: (title, count) =>
   #title = 'example', count = 22
   # First try
   $("#container span:contains(#{title} (#{count})")
   # Second try
   filter = new RegExp(title+"//("+count+"//)") 
   $("#container span").filter (i, el) ->                     
                                     return !!$(el).text().match(filter)

但我一无所获。如何改进我的方法?谢谢你的所有答案。

1 个答案:

答案 0 :(得分:0)

getElement = (title, count) ->
  spans = document.querySelectorAll '#container span'
  filter = Array.prototype.filter
  filter.call spans, (span)->
    text = span.textContent.trim()
    text is "#{title} (#{count})"

element = getElement "example", 22
console.log element[0]?.textContent

我不知道您为何尝试使用RegExp。如果你需要一些模式,它可能是。但那很重。如果要将文本与静态字符串匹配,只需通过JavaScript中的==进行比较,即CoffeeScript中的is。 上面的源代码是用vanilla编写的,而不是jQuery,但我认为它足以满足我的想法。