如何选择元素的子元素2步?

时间:2013-04-17 15:29:34

标签: jquery

如何在下面的情况下从按钮中获取'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 个答案:

答案 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'

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'));
}