jquery简化了onclick事件的选择

时间:2013-10-02 12:45:01

标签: javascript jquery html jquery-selectors onclick

看起来有些错误(效率低下?):

$($('.feature-s').siblings()).children().children('a[data-target=#deleteModal]').parent().parent().click();

我想选择范围:

/html/body/div/div/div/div[1][class="feature-s"]
/html/body/div/div/div/div[2]/span/a/i/span <= click

但不是在哪里:

/html/body/div/div/div/div[1][class="something else"]
/html/body/div/div/div/div[2]/span/a/i/span <= not handled

我在这里重新创建了这些情况:

http://jsfiddle.net/brianray/ncu6u/

如果我的选择器很好,就这么说吧。我觉得必须有一个更好的方法来根据现有的dom选择该按钮。

谢谢!

3 个答案:

答案 0 :(得分:2)

最简单和最快(在所有其他答案中)是:

$('.feature-s + div a[data-target="#deleteModal"]')

请参阅jsperf

enter image description here

答案 1 :(得分:1)

检查下面的jsFiddle。您可以使用+选择器直接选择直接在feature-s之后的元素。

$('.feature-s + div').find('a[data-target="#deleteModal"]').click(function(){
    alert('hey');
    return false;
});

下面的示例效果很好,效率更高。

http://jsfiddle.net/ncu6u/1/

答案 2 :(得分:0)

我认为

$('.feature-s').siblings()

已经返回jQuery对象,因此您不必将其包装到$()。

一切都很好。希望这会有所帮助。