-1

これは簡単な作業であるはずですが、実際にはこの問題を解決するために1時間費やしましたが、グーグルで解決策はまだ見つかりませんでした。基本的に、dom要素(IDを持つdiv)を繰り返したいと思います。コードは次のとおりです。

$j(document).ready(function(){
    $j("#pinlocation").each(function(index){
        alert(index+":"+$j(this).text());
    });

});

コンテンツについて:

   <div id="pinlocation">Test1</div>
   <div id="pinlocation">Test2</div>

ここでエラーを複製します:http://www.doxadigital.com/scrape/dummy.php

ご覧のとおり、このスクリプトは2番目の「ピンロケーション」を取得できません。何がうまくいかなかったのか分かりますか?

どうもありがとう

4

5 に答える 5

3

IDは一意の識別子であると想定されています。クラスに変更するか、別のIDを割り当てます。

于 2012-11-21T17:47:03.263 に答える
3

ここでの問題は、同じ要素を持つ2つの要素を持つことができないidということです。2番目の要素は無視されます。

id="pinlocation"に変更してからclass="pinlocation"、次のことを試してみてください。

$j(document).ready(function(){
    $j(".pinlocation").each(function(index){
        alert(index+":"+$j(this).text());
    });
});

これで正しく動作するはずです。

于 2012-11-21T17:48:32.847 に答える
1

2つのコントロールに同じIDがありますが、そうではないはずです。セレクターを作成して繰り返すことができますが、this is bad practice and must not be used unless you have no other optionIts better to put some class in both and using class selector

変化する

$j("#pinlocation")

$j("[id=pinlocation]")

あなたのコード

$j(document).ready(function(){
    $j("[id=pinlocation]").each(function(index){
        alert(index+":"+$j(this).text());
    });    
});

クラスセレクターの使用(推奨)

  <div id="pinlocation1" class="someclass">Test1</div>
  <div id="pinlocation2" class="someclass">Test2</div>


$j(document).ready(function(){
    $j(".someclass").each(function(index){
        alert(index+":"+$j(this).text());
    });
});
于 2012-11-21T17:46:45.440 に答える
1

その非常に単純な解決策は、IDをクラスに変更することです。

$j(document).ready(function(){
    $j(".pinlocation").each(function(index){
        alert(index+":"+$j(this).text());
    });

});
<div class="pinlocation">Test1</div>

NB。すべてのIDは一意である必要があります。

于 2012-11-21T17:53:21.630 に答える
1

複数の要素に同じIDを使用しているため、HTMLは無効です。そのため、コードは2番目のIDを反復処理していません。

http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2を参照してください

代わりに、要素にクラスを使用してください。

于 2012-11-21T17:55:07.427 に答える