2016-10-15 15 views
0

は、私は次のコードでのdivを作成理解jQueryのセレクタ出力

$("div[myAttribute ='"+ myValue +"']") 

ただし、このコードでmyDivを変更することはできません。

$("div[myAttribute ='"+ myValue +"']").id = newID; 

だから私は、このアラートをデバッグしようとしています:

alert(JSON.stringify($("div[myAttribute ='"+ myValue +"']"))); 

をしかし、それはものの混乱を示しています

{ 

"length":0, 
"prevObject":{ 
    "0":{ 
     "location":{ 
      "href":"http://localhost:3000/", 
      "origin":"http://localhost:3000", 
      "protocol":"http:", 
      "host":"localhost:3000", 
      "hostname":"localhost", 
      "port":"3000", 
      "pathname":"/", 
      "search":"", 
      "hash":"" 
     } 
    }, 
    "context":{ 
     "location":{ 
      "href":"http://localhost:3000/", 
      "origin":"http://localhost:3000", 
      "protocol":"http:", 
      "host":"localhost:3000", 
      "hostname":"localhost", 
      "port":"3000", 
      "pathname":"/", 
      "search":"", 
      "hash":"" 
     } 
    }, 
    "length":1 
}, 
"context":{ 
    "location":{ 
     "href":"http://localhost:3000/", 
     "origin":"http://localhost:3000", 
     "protocol":"http:", 
     "host":"localhost:3000", 
     "hostname":"localhost", 
     "port":"3000", 
     "pathname":"/", 
     "search":"", 
     "hash":"" 
    } 
}, 
"selector":"div[myAttribute='myValue']" 

} 

私はセレクタを使用する文を形成するにはどうすればよいですその要素のIDを変更するには?

+0

のjQueryオブジェクトは '.id'性質を持っていないのに役立ちます、次のコードスニペット

var myDiv = document.createElement('div'); myDiv.className = 'square'; myDiv.id = "originalID"; document.body.appendChild(myDiv) myDiv.setAttribute('myAttribute',2); alert(myDiv.getAttribute('myAttribute'))

希望を確認してください。 'document.querySelector(" div [myAttribute = '"+ myValue +"'] ")の代わりに' querySelector'を使うことができます。id = newID'これは、この簡単な操作のためにjQueryオブジェクトを作成する必要性を回避します。 –

+1

'div.myAttribute = 'X''は、要素の属性ではなくオブジェクトのプロパティを設定します。 '厄介な'デバッグメッセージの最初の情報は、jqueryの結果の長さが0であることを示しています。一致する要素がありません。 – GolezTrol

+0

@GolezTrol私はあなたが何かをしていると思います...私はどのようにプロパティで選択しますか? –

答えて

1

最初に、myDivを作成した後、それをdomに追加しましたか? DOMに追加してみてください。 が、これは

+0

はい、私はDOMに追加しました。私は自分の問題は属性とプロパティを混同していると思う。 JavaScriptを初めて使う私はあなたの "属性の設定"のヒントは私がこの問題を解決するのに役立つと思う!ありがとう –

+0

それは完璧に働いた、ありがとう! –