2

jQuery を使用して、コードを挿入しているページの DOM をトラバースしようとしていますが、このエラーが引き続き発生します。

私のマニフェストファイルは次のとおりです。

{
  "name": "Jive enhancer",
  "version": "2.0.0",
  "description": "",
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "icons": {
    "48" : "sample-48.png",
    "128" : "sample-128.png"
  },
  "content_scripts": [
    {
      "matches": ["https://*/*"],//just for the question
      "js": [
            "jquery-1.7.2.js",
                "contentscript.js"
                ]
    }
  ]
}

そして、これは私の contentscript.js です:

function test () {
    console.log ("injected");
    $("j-comm-activity-list").style.left="100px";   
}

test();

contentscript が挿入されているページには、「j-comm-activity-list」という ID の div がありますが、何らかの理由でこのエラーが発生し続けます。コンソールから同じコマンドを実行すると、問題なく動作します。私は必死です!

ありがとう

4

2 に答える 2

4

jQuery (Sizzle) セレクターを使用すると、CSS と同様に、.id を#. $("j-comm-activity-list")のないセレクターは、その ID を持つ要素ではなく#、タグ name を持つ要素を検索しています。jQuery ID Selectorj-comm-activity-listを使用したい。

jQuery オブジェクトにもstyleプロパティはありません。のような配列表記を使用して、選択した DOMElement を取得できます$("#j-comm-activity-list")[0]。ただし、 css$("#j-comm-activity-list").get(0)のような組み込みの jQuery 関数を使用することをお勧めします。

$("#j-comm-activity-list").css('left', 100);
于 2012-06-16T04:14:42.020 に答える
2

これを試して:

$("#j-comm-activity-list").css('left', '100px') 
于 2012-06-16T04:14:35.323 に答える