如何在下面的情况下从按钮中获取'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'));
}
答案 0 :(得分:5)
您必须将attr()
与jQuery
对象一起使用,并将其与DOM
对象一起使用,因此请勿使用 indexer ,并调用prev()< em>两个时间可以为你提供你想要的元素
<强> Live Demo 强>
更改
console.log($(src).prevAll()[0].children('button')[0].attr('onclick'));
到的
console.log($(src).prev().prev().children('button').attr('onclick'));
答案 1 :(得分:0)
如果您的HTML完全如您所示,那么您可以这样做:
$(src).prevAll()[0].find("button").attr('onclick')
或者,如果您的li
元素属于父母(我想他们这样做了!),那么您可以这样做:
$(src).parent().find("button").attr('onclick')
这两个例子都假设只有一个button
元素存在。如果您有多个,那么您需要更具体
答案 2 :(得分:0)
console.log($(src).parents('button')[0].prop('onclick'));
但是,我会查看您的代码,看看您是否可以让自己更容易,例如将click事件处理程序附加到list元素并使用适当的类。
答案 3 :(得分:0)
给按钮一个班级说'btn'
<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'));
}