2011-07-01 5 views
1

私は動的に生成されたリンクの「onclickの」属性にアクセスしようとしている:

私がアクセスできる使用してjQueryのattrが(「onclickの」)を返し、未定義

<div class="IDX-linkVirtualTour"> 
    <p class="detailsLink_p">Virtual Tour</p> 
    <div class="IDX-detailsSubLink"> 
      <a onclick="window.open('http://www.tourfactory.com/736220', 'VirtualTour', 'width=800, height=600, resizable=1, scrollbars=1, status=0, titlebar=0')" href="javascript:void(0)">Virtual Tour</a> 
    </div> 
</div> 

要素、それは放火犯に表示される^を放火犯コンソールへ

var $sublinkA = $('.IDX-detailsSubLink a'); 
log( 
    $sublinkA[0].href + 
    "\n" + 
    $sublinkA[0].onclick); // output the value to firebug console 

出力:href属性によって
http://www.vdbestates.com/ ...(意図的に短縮)
未定義

アイデア??ありがとう!


(EDIT)は答えていないこれらの要素のタグの各々は、onclick属性を有するが
var $sublinkA = $('.IDX-detailsSubLink a') 

は、複数の要素を意味します。私は実現しました、要素の1つだけがそれを持っています。私はjQueryを次のように再構成しました:

var $virtualLink = $('.IDX-linkVirtualTour .IDX-detailsSubLink > a'); 
log("onclick: " + $virtualLink.attr('onclick')); 

そして、onclick属性の値を取得しました。 ストーリーのモラルは、要素のセットの属性にアクセスしようとするときに注意してください。すべての要素が目的の属性を持っていない可能性があります。

乾杯!あなただけonclick属性の値にアクセスしようとしている場合

+0

[これは私の回答](http://stackoverflow.com/questions/6550892/using-jquery-attronclick-returns-undefined/6550957#6550957)です。 – user113716

+0

は一切ありません。私はyaをチェックした。助けをありがとう、私はあなたの答えを見た前に私の編集を掲載した。私はそのような新聞ではないときにあなたに1をプラスします。 –

答えて

0

コンソールメッセージからhrefはあなたのHTMLと異なっていることを考えると、私はインデックス[0]の要素は、あなたがターゲットとしているものとは異なっていることを言うと思います。

.IDX-detailsSubLink aのインスタンスが複数ある場合は、最初のインスタンスを取得しています。

ページに1つしかない場合は、インラインのコンテンツをラップする関数onclickを返します。

実際の属性を使用する場合は、代わりにgetAttribute()を使用できます。

var $sublinkA = $('.IDX-detailsSubLink a'); 
log( 
    $sublinkA[0].href + 
    "\n" + 
    $sublinkA[0].getAttribute('onclick')); 

でも、正しい要素を参照する必要があります。

1

、あなたはこれを行うことができます。

$("elementID").attr("onclick"); 

はあなたがすでに持っているもので、これをに収まるように、それは次のようになります。

var $sublinkA = $('.IDX-detailsSubLink a'); 
var onclickAttr = $($sublinkA[0]).attr("onclick"); 
+0

それは彼が言ったことは動作していない:$( "elementID")。attr( "onclick"); – david

+0

@david - 彼のコードは '$ sublinkA [0] .onclick'であり、' attr'関数の使用はありません。 –

+0

あなたは正しい私は彼のポストのタイトルを探していた – david