2012-03-21 16 views
0

クローム拡張機能を構築していて、show_reviewの最初の表にclick()を実行する必要があります。私が持っている問題は、これらのリンクがIDなしの同じクラスを持っていることです。ここでクラス属性を持つ一連の要素の最初の要素を選択する

は、私は複数のテーブルが同じクラスで、すべてがある]をクリックしようとしているものです。ここで

<table cellpadding="0" cellspacing="0" class="show_review" onmousemove="csmd1(this)" onmousedown="csmd2(this)" onclick="adOpen(this,1,317543,'680536')" msm="1" msc="1"></table> 

は私のコードです。私はリロードするときに何もしません。ちょうどそこに座ってクリックは行われていません。

if ($(".show_review")[0].length){ 
    $(".show_review")[0].click(); 
} 
+0

あなたはクリックイベントをトリガしたときに、それらの要素が存在しますか?たぶん、DOM準備完了イベントを使用する必要がありますか?私の更新を見てください。 – gdoron

+0

配列アクセサーを使用すると、実際のDOM要素がjQueryセットから戻ってくるのに対し、 '.eq(n)'は 'n 'の位置にある要素を含むjQueryセットを返します。 $( '。show_review')。length'と '$( '。show_review')[0]をテストしたいので、' $( '。show_review')[0] .length'は悪いです。 ] .click() 'は' $( '。show_review')。eq(0).click() 'でなければなりません。最後に、空のセットで関数を実行するとjQueryで正常に実行されるため、最初にチェックする必要はありません。 – nickf

答えて

2
if ($(".show_review").length){ 
    $(".show_review").eq(0).click(); 
} 

あなたは1行でそれを行うことができますが:

$(".show_review:first").click(); 

jQueryのセレクタと機能0+要素で動作するように設計されました。
この場合、要素が選択されていない場合、click関数は何もしません。

ありがとう、あなたjQuery!


更新:あなたはDOM readyイベントを使用する必要があるかもしれません

$(function(){ 
    ... 
    $(".show_review:first").click();   
    ... 
}); 
+0

だから私は '$("。show_review:first ")。click();'を試みたが、同じ問題は何も起こらない。それはonclick属性を持っている可能性がありますか? – jon

+0

@jon。 **悪い練習です**、いいえ。 HTMLを表示してください。問題はDOMまたはセレクタにあります。 – gdoron

+0

ここにhtml http://pastebin.com/xmw4xEAa – jon

1
var firstTable = $("table.show_review:eq(0)"); 
関連する問題