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()with jQueryobject 并且您正在使用它与DOMobject 所以不要使用indexer,并且调用 prev()两次可以给你你想要的元素

现场演示

改变

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
console.log($(src).parents('button')[0].prop('onclick'));

但是,我会查看您的代码,看看您是否可以让自己更轻松,例如将单击事件处理程序附加到您的列表元素并使用适当的类。

于 2013-04-17T15:34:17.650 回答
0

好吧,如果您的 HTML 与您的示例完全一样,您可以这样做:

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

或者,如果您的li元素属于父元素(我想他们确实如此!),那么您可以这样做:

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

这两个例子都假设只有一个button元素存在。如果您有多个,那么您需要更具体

于 2013-04-17T15:32:56.963 回答
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 回答