2011年01月14日

jQuery Uncaught Syntax error, unrecognized expression: [@href^="http://"]

Uncaught Syntax error, unrecognized expression: [@href^="http://"とは?


jQueryを練習していておこったエラーです。

なにをして起きたエラーか


[01]javaScriptが書けない、初心者が始めるjQuery
ここを参考に「4.aタグにtarget="_blank"を追加するサンプル」をやっていたら発生したエラーです。

記述したコード


実際に記述したコードです。
<html>
<head>
<title>title</title>
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
<script type="text/javascript" src="js/original.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('a[@href^="http://www.google.com"]').attr('target', '_blank');
});
</script>
</head>
<body>
<a href="#">hoge</a>
<p id="strong">bbb</p>
<p>bbb</p>
<a href="http://www">hoge</a>
<a href="http://www.yahoo.jp">hoge</a>
<a href="http://www.google.com">hoge</a>
</div>
</body>
</html>

aタグの部分でhttp://www.google.comのurlのみtargetの_blankを付加します。

解決策


上記コードを実行したらエラーがでました。
タイトルにもあるように
「Uncaught Syntax error, unrecognized expression: [@href^="http://"]」
ですね。
参考webページのと同じように作っているのになぜエラーがでるのかは謎でしたが、調べてみたところ。
http://www.thalesjacobi.com/Jquery_error_uncaught_exception_Syntax_error_unrecognized_expression
ここの下の方にGoodCodeとBadCodeで@idを使用するとBadなことから@を外してみたら解消できました。

jQuerのversionで@の扱いとか違うんですかね?
というよりも@が何のためにあるものなのかがわからないんですけどねw
これもそのうち調べないと。
posted by RicK at 14:27| Comment(0) | TrackBack(0) | 日記