2012-05-01 4 views
1

JavaScriptでこのページの最初のリンクを印刷したいと思います。しかし、私は次のコードを使用する場合、それは動作しません:文書内の最初のリンクを印刷

<html> 
    <head><title></title></head> 
    <body> 
     <a id="mylink" href="http://google.com">Google</a><br /> 
     <script>    
      a=$('mylink').href; 
      document.write(document.links[0]);     
     </script> 
    </body> 
</html> 

それから私は「a=$('mylink').href」のコードをコメントアウト、それは突然、なぜ、働いていましたか?どのように変数aが次のステートメントに影響を与えていますか?

いずれの回答もありがとうございます。

答えて

2

いくつかの可能性があります:

  1. オブジェクト$が定義され、
  2. $オブジェクトを実行するために、あなたの第二の文を防止JavaScriptエラーが渡された文字列で何をすべきか分かっていない原因ではないと$から返された値が値を持っていない
  3. エラーが - JavaScriptエラー
  4. を引き起こし、文句を言わない性質 hrefを持っている(すなわち、それは undefinedを返します) 210
+0

ああ、私は$記号ではなく変数aをより心配していました。 $がこの問題の原因です。ありがとう、スレイス! – fall

0

あなたは何をしようとしているのか少し混乱していますが、jsにリンク全体を書くことはできませんでしたか?例:

<script> 
<!-- 
document.write('<a href="http://google.com">Google</a>'); 
--> 
</script> 
<noscript> 
<a href="http://google.com">Google</a> 
</noscript> 

スクリプト内のコメントタグは無視され、javacriptをサポートしていないブラウザは文書でそれを印刷しないようにだけ存在しています。 <noscript>は、javascriptをサポートしていないブラウザで代替コンテンツがあるためです。

+0

私はJavaScriptの教科書から例を試して、この例題を見ました。しかし、あなたのアプローチは間違いなく実用的です。 – fall

+1

Netscape 2またはIE <3をサポートしていない限り、あなたのJavaScriptをコメントにラップすることはできません< –

+0

それは良い点です –

0

a=$('mylink').hrefが実行できず、次のコードの実行を停止するため、動作しません。コードdocument.write(document.links[0])は正しいです。それ以前の間違った行なしに呼び出すと、うまく動作します。

私は最初の行でjQueryライブラリを使用しようとしていると思います。あなたがそれをしたい場合は、<script>タグを使用してjQueryライブラリをインクルードする必要があり、その後、次のコードを使用します。あなたの例では$オブジェクトが存在しないとエラーが発生しますので、コードが動作していない

document.write($('a:first').attr("href")); 
+0

:最初のセレクタがうまく動作します。 – fall

+0

これは、最初のリンクではなく最初のA要素を選択します。それらは同じものかもしれませんが、最初のAはアンカー(ターゲット)かもしれません。 – RobG

1

を。あなたはjQuery($ object)のようなJavaScriptフレームワークを使用しようとしていたようですが、それを含めるのを忘れてしまったようです。

は、次のスクリプトタグを追加してください:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

あなたはjQueryのを使用したい場合は、.ATTR(「属性名」)機能を経由して属性をもアクセスする必要があります。例えば。あなたはjQueryのを使用したい場合は

var a = $('#mylink').attr('href'); 

は再び、あなたは、ID「mylink」を持つ要素を探していたことを指定するには、「#mylink」に「mylink」からセレクターを変更する必要があります。

+0

#mylinkは問題なく動作します。 – fall

0

jQueryのものを削除するだけで、必要ありません。

document.write(document.links[0].href) 

、あなたが行われている:あなたは既に発見したとして、あなたは、文書の最初のリンクのherf値を印刷したいので、もし、document.linksコレクションがあります。

関連する問題