1

私は jQuery を使用して SharePoint で作業しています。リスト内の各セルの前に画像を表示するために、prepend() 関数を each() 関数と組み合わせて使用​​するたびに、それらの画像がいくつか取得されます。

より具体的には、これらの画像の量は、リスト内のアイテムの量と一致します。それが何が起こっているのかの手がかりになるに違いないが、私はjQueryの専門家ではない

コードの一部を次に示します。

$(item).each(function(i, e) {
  $(e).prepend(image); 
});

画像、ところで、image画像の html コードを含む変数です。Itemこれは:

var item = #MSO_ContentTable td.ms-vb2>div:has(>div);

この場所は素晴らしいです!

4

2 に答える 2

0

のセレクターに問題があるのではないかと思いitemます。私の経験では、SharePoint で生成された HTML には、レンダリングされたページには表示されませんが、jQuery クエリによって取得される "空の" 要素が多数含まれています。

jQuery セレクターを作成するときは、Mozilla Firefox と Firebug が不可欠です。これが私が提案するものです:

  1. FirefoxFirebugを入手します (まだ入手していない場合)。
  2. SharePoint ページを FF で開き、f12 を押して FB を有効にします。
  3. FB で、[コンソール] タブに切り替えます (最初に [コンソール] ドロップダウン メニューから [有効] を選択する必要がある場合があります)。
  4. コンソールの下部にある行 ( で示される>>>) に、jQuery を入力します。 jQuery("#MSO_ContentTable td.ms-vb2>div:has(>div)")
  5. ヒットリターン; コンソールの出力ウィンドウには、セレクターによって表されるすべての一致が表示されます。それぞれの上にマウスを置くと、ページ内で強調表示されます。

この手法を使用することで、クエリが返す結果が多すぎるか、少なすぎるか、まったく適切でないかを確認できます。

ドル エイリアスは FB でも使用されるため、FB コンソール ウィンドウのjQuery代わりに必ず使用してください。$

幸運を!

于 2010-08-03T19:31:41.027 に答える
0

これを行うことができます:

$(item).each(function(i, e) {
  $(e).prepend(image[i]); 
});

しかし、それが要素のセットである場合、セレクターが見つけimageた各一致に設定するために前に追加されます。itemjQuery要素や配列であれば上記で動作しますが、それ以外であれば投稿してください。

上記の例では、一致するimageエントリを取得し、それをitem同じインデックスの現在の一致に追加します。これは、質問された質問から収集できる最良のものです。

于 2010-08-03T16:42:50.030 に答える