0

以下の状況でボタンから「onclick」属性の値を取得するにはどうすればよいですか?

<li>...<br><button onclick="x()">X</button></li>
<li>
<li onclick="monkey(this)"></li>

次のスクリプトを試しましたが、これは正しくありません。

function monkey(src){
    console.log($(src).prevAll()[0].children('button')[0].attr('onclick'));
}
4

4 に答える 4

5

オブジェクトで使用する必要があり、オブジェクトで使用attr()しているため、 indexerを使用しないでください。 prev()を2回呼び出すと、必要な要素が得られる可能性がありますjQueryDOM

ライブデモ

変化する

console.log($(src).prevAll()[0].children('button')[0].attr('onclick'));

console.log($(src).prev().prev().children('button').attr('onclick'));
于 2013-04-17T15:32:00.270 に答える
0

HTMLがあなたの例とまったく同じであれば、これを行うことができます:

$(src).prevAll()[0].find("button").attr('onclick')

あるいは、あなたのli要素が親に属している場合(私は彼らがそうしていると思います!)、これを行うことができます:

$(src).parent().find("button").attr('onclick')

これらの例はどちらも、存在するbutton要素が 1 つだけであることを前提としています。複数ある場合は、より具体的にする必要があります

于 2013-04-17T15:32:56.963 に答える
0
console.log($(src).parents('button')[0].prop('onclick'));

ただし、コードを調べて、リスト要素にクリック イベント ハンドラーをアタッチし、適切なクラスを使用するなど、これを自分で簡単にできるかどうかを確認します。

于 2013-04-17T15:34:17.650 に答える
0

ボタンに「btn」と言うクラスを与える

HTML

<ul>
  <li>...<br><button class="btn" onclick="x()">X</button></li>
  <li>text</li>
  <li onclick="monkey(this)"></li>
</ul>

脚本

function monkey(src){
    console.log($('.btn', $(src).siblings()).attr('onclick'));
}
于 2013-04-17T15:36:32.407 に答える