Jquery - 检查链接表达式问题中的href?

时间:2014-03-28 21:06:53

标签: javascript jquery regex

我坚持检查地址是否包含变量的表达式。 Jquery返回错误:无法识别的表达式:.ui-body h3 a [href * = / 65_]。你能帮我解决这个问题吗?非常感谢你。 PS:由于链接的重复性,我需要使用数字和下划线在href表达式中使用斜杠。表达中的斜线是问题!

Jquery的:

num_id = 65
$(".ui-body h2 a[href*=\/" + num_id + "]_").first().parent().parent().parent().append($(this));

HTML:     ..content

<div class="col-bottom-1">
  <div class="ui-body">
   <h2>
     <a href="/65_news.html">Text</a>
     <a href="/65_news.html">&gt;&gt;</a>
   </h2>
  </div>
  <!-- this is place where I display div after Jquery function -->
</div>

2 个答案:

答案 0 :(得分:2)

您必须将/转义为将其用作选择器,而_必须位于href属性选择器中。

Ref

  

使用任何元字符(例如   !“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为名称的字面部分,必须   用两个反斜杠逃脱:\。例如,一个元素   id =“foo.bar”,可以使用选择器$(“#foo \ .bar”)。 W3C CSS   规范包含有关有效CSS的完整规则集   选择。同样有用的是Mathias Bynens关于CSS的博客文章   标识符的字符转义序列。

像:

num_id = 65
$(".ui-body h2 a[href*=\\/" + num_id + "_]").first().parent().parent().parent().append($(this));

演示:http://jsfiddle.net/IrvinDominin/GUDYN/

答案 1 :(得分:1)

我猜它应该是

 $(".ui-body h2 a[href*='/" + num_id + "_']")

FIDDLE

不要在括号内转义,并确保所有字符(下划线)实际位于括号内