2017-08-18 16 views
-2

私はjavascriptとjqueryを学んでいます。私は最近、DOM Traversingについて発見しました。しかし、私がコードを書いているとき、それはただ応答していません。 コードは次のとおりです。私のjavascriptはdom traversingのために働いていません

<!DOCTYPE html> 
<head> 
<title>Test</title> 

</head> 
<body> 
<script> 

$('div').onclick = function pi() { 
var p = document.getElementsByClassName('.p'); 

p.value("hello guys"); 
}; 

</script> 
<div style="background-color:blue; height:1000px; width:100%px;"> 
</div> 
<div style="height: 600px; background-color: aqua;width: auto;"> 
<p style="color:black; font-size: 40px;" class="p">d 
</p> 
</div> 
</body> 
</html> 
+1

'document.getElementsByClassName( 'P ')' 'document.getElementsByClassName(' P')' –

+1

theresのでなければならず、ドットを削除します...あまりにも間違っている... –

+1

間違った量はあまりにも高くて、私はさえもしません。 – Dellirium

答えて

-1

はの問題見ていきましょう:あなたはそれを使用することはできませんので

1)あなたは、どこかのjQueryを含めていません。あなたがそれを使用したい場合、あなたはそれへのリンク(あなたの現在の使用与え<head>タグ間の)スクリプトタグを追加する必要がある - のようなもの:

<script 
    src="https://code.jquery.com/jquery-2.2.4.js" 
    integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" 
    crossorigin="anonymous"></script> 

2)それはjQueryのonclickは、(実際にclickであるか今です)が動作します。 clickは、機能を受け入れるファンクションです。 clickに渡す関数は、ユーザーがターゲットをクリックすると実行されます。あなたのコードはjQueryのclickを上書きされるだろう、それは代わりにする必要があります:

$('div').click(function pi() { 
    // code 
}) 

3)それは禁断のか何かが、あなたはすでにjQueryのを使用しているので、それは感覚のトンがネイティブにフォールバックすることはできないではないですgetElementsByClassNameのようなDOMフェッチAPI。私はあなたの代わりに$('.p')を使用することをお勧め:

$('div').click(function pi() { 
    // it's good to prefix jquery collection variables with a $ 
    // makes it obvious what is in them 
    var $p = $('.p') 
}) 

サイドノートあなただけのタグ名に基づいて$('p')とクエリを使用することができ、これは冗長なクラス名

4).value()はどちらもjQueryのメソッドまたはを割り当てる回避しますネイティブメソッド。 jQueryにはval()メソッドがありますが、これはselect,inputなどの入力要素のvalueプロパティを設定するためのものです。pタグのテキストを変更することをお勧めします。 jQueryの場合は$('p').text('new text')となります。

+0

@BenFortuneそれを指摘してくれてありがとう、どのように私はその1つを逃した!更新しました –

-1

これはあなたの方法であなたを役に立てば幸い

$('div').click(function pi() { 
    var $p = $('.p') 
    $p.text('hello guys') 
}); 

私はここで見つかった3つの誤りがあります。それはのためのテキストを変更しますALLp要素、またはあなたのケースでclass="p"要素を呼び出すことに注意してください。

  1. jQueryを使用しているように見えるので、jQueryファイルをScriptタグに挿入します。
  2. クラス名で呼び出すときは、 ".p"を使用しないでください。
  3. いくつかの構文ミス

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>Test</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
$('div').click(function(){ 
 

 
var p = document.getElementsByClassName('p'); //returns an Array with the class name "p" 
 
p[0].innerHTML = "Hello Guys"; // first element of all element in "p" array 
 

 
//or you could use the jquery way mentioned down below 
 

 
// $('.p').html("Hello Guys"); 
 
    
 
}); 
 
}); 
 
</script> 
 

 
</head> 
 
<body> 
 
    <div style="background-color:blue; height:100px; width:100%px;"> 
 
    </div> 
 
    <div style="height: 100px; background-color: aqua;width: auto;"> 
 
    <p style="color:black; font-size: 40px;" class="p">d</p> 
 
    </div> 
 
</body> 
 
</html>

関連する問題