在以下情况下,我如何从按钮中获取“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'));
}
在以下情况下,我如何从按钮中获取“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'));
}
您必须使用attr()
with jQuery
object 并且您正在使用它与DOM
object 所以不要使用indexer,并且调用 prev()两次可以给你你想要的元素
改变
console.log($(src).prevAll()[0].children('button')[0].attr('onclick'));
至
console.log($(src).prev().prev().children('button').attr('onclick'));
console.log($(src).parents('button')[0].prop('onclick'));
但是,我会查看您的代码,看看您是否可以让自己更轻松,例如将单击事件处理程序附加到您的列表元素并使用适当的类。
好吧,如果您的 HTML 与您的示例完全一样,您可以这样做:
$(src).prevAll()[0].find("button").attr('onclick')
或者,如果您的li
元素属于父元素(我想他们确实如此!),那么您可以这样做:
$(src).parent().find("button").attr('onclick')
这两个例子都假设只有一个button
元素存在。如果您有多个,那么您需要更具体
给按钮一个类说'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'));
}