Javascript 是否有方法检查元素';使用事件委派时的属性?

Javascript 是否有方法检查元素';使用事件委派时的属性?,javascript,jquery,html,css,javascript-events,Javascript,Jquery,Html,Css,Javascript Events,使用事件委派,是否有方法检查被激发的元素是否具有特定属性或特定的类或ID <ul> <li><button>Make the first paragraph appear</button></li> <li><button>Make the second paragraph appear</button></li> <li><button>M

使用事件委派,是否有方法检查被激发的元素是否具有特定属性或特定的类或ID

<ul>
    <li><button>Make the first paragraph appear</button></li>
    <li><button>Make the second paragraph appear</button></li>
    <li><button>Make the third paragraph appear</button></li>
</ul>

<div>
    <p class="first">First paragraph</p>
    <p class="second">Second paragraph</p>
    <p class="third">Third paragraph</p>
</div>
  • 使第一段出现
  • 使第二段出现
  • 使第三段出现

第一段

第二段

第三段

假设所有段落最初都是隐藏的,单击第一个按钮,第一个段落出现,单击第二个按钮,第一个段落隐藏,第二个段落显示,当单击第三个按钮时,第二个段落隐藏,同时保持第一个段落隐藏


到目前为止,我的解决方案是为每个特定按钮创建一个事件处理程序,并隐藏其他两段,而只显示一段。它可以工作,但如果元素的数量增加,则每个元素所需的事件处理程序也会增加。有更好的方法吗?提前感谢您的回复

我认为如果您可以确保按钮的位置和要显示的
p
相同,那么您可以使用基于索引的解决方案,如

jQuery(function ($) {
    var $ts = $('div > p');
    $('ul button').click(function (e) {
        $ts.hide().eq($(this).parent().index()).show()
    })
})

演示:

我认为如果您可以确保按钮的位置和要显示的
p
相同,那么您可以使用基于索引的解决方案,如

jQuery(function ($) {
    var $ts = $('div > p');
    $('ul button').click(function (e) {
        $ts.hide().eq($(this).parent().index()).show()
    })
})

演示:

我认为如果您可以确保按钮的位置和要显示的
p
相同,那么您可以使用基于索引的解决方案,如

jQuery(function ($) {
    var $ts = $('div > p');
    $('ul button').click(function (e) {
        $ts.hide().eq($(this).parent().index()).show()
    })
})

演示:

我认为如果您可以确保按钮的位置和要显示的
p
相同,那么您可以使用基于索引的解决方案,如

jQuery(function ($) {
    var $ts = $('div > p');
    $('ul button').click(function (e) {
        $ts.hide().eq($(this).parent().index()).show()
    })
})

演示:

如果按钮和段落的索引相同,则可以使用
.index()

或者,如果索引不同,可以使用
data-*
属性:

<ul>
    <li><button data-parapgraph="first">Make the first paragraph appear</button></li>
    <li><button data-parapgraph="second">Make the second paragraph appear</button></li>
    <li><button data-parapgraph="third">Make the third paragraph appear</button></li>
</ul>

<div>
    <p class="first">First paragraph</p>
    <p class="second">Second paragraph</p>
    <p class="third">Third paragraph</p>
</div>

如果按钮和段落的索引相同,则可以使用
.index()

或者,如果索引不同,可以使用
data-*
属性:

<ul>
    <li><button data-parapgraph="first">Make the first paragraph appear</button></li>
    <li><button data-parapgraph="second">Make the second paragraph appear</button></li>
    <li><button data-parapgraph="third">Make the third paragraph appear</button></li>
</ul>

<div>
    <p class="first">First paragraph</p>
    <p class="second">Second paragraph</p>
    <p class="third">Third paragraph</p>
</div>

如果按钮和段落的索引相同,则可以使用
.index()

或者,如果索引不同,可以使用
data-*
属性:

<ul>
    <li><button data-parapgraph="first">Make the first paragraph appear</button></li>
    <li><button data-parapgraph="second">Make the second paragraph appear</button></li>
    <li><button data-parapgraph="third">Make the third paragraph appear</button></li>
</ul>

<div>
    <p class="first">First paragraph</p>
    <p class="second">Second paragraph</p>
    <p class="third">Third paragraph</p>
</div>

如果按钮和段落的索引相同,则可以使用
.index()

或者,如果索引不同,可以使用
data-*
属性:

<ul>
    <li><button data-parapgraph="first">Make the first paragraph appear</button></li>
    <li><button data-parapgraph="second">Make the second paragraph appear</button></li>
    <li><button data-parapgraph="third">Make the third paragraph appear</button></li>
</ul>

<div>
    <p class="first">First paragraph</p>
    <p class="second">Second paragraph</p>
    <p class="third">Third paragraph</p>
</div>

我宁愿使用

  • 第一段

    第二段

    第三段

    $('.link list')。在('click','li>a',函数()上{ //我会是第一个 var id=$(this.attr('href'); //我们使用它作为选择器(您也可以使用$('div.classname').find(id); 变量$段落=$(id); //我们显示我们想要的段落并隐藏它的兄弟 $paragration.show().sides().hide(); //确保浏览器未跟随链接/定位 返回false; });
    我宁愿使用
    
    
  • 第一段

    第二段

    第三段

    $('.link list')。在('click','li>a',函数()上{ //我会是第一个 var id=$(this.attr('href'); //我们使用它作为选择器(您也可以使用$('div.classname').find(id); 变量$段落=$(id); //我们显示我们想要的段落并隐藏它的兄弟 $paragration.show().sides().hide(); //确保浏览器未跟随链接/定位 返回false; });
    我宁愿使用
    
    
  • 第一段

    第二段

    第三段

    $('.link list')。在('click','li>a',函数()上{ //我会是第一个 var id=$(this.attr('href'); //我们使用它作为选择器(您也可以使用$('div.classname').find(id); 变量$段落=$(id); //我们显示我们想要的段落并隐藏它的兄弟 $paragration.show().sides().hide(); //确保浏览器未跟随链接/定位 返回false; });
    我宁愿使用
    
    
  • 第一段

    第二段

    第三段

    $('.link list')。在('click','li>a',函数()上{ //我会是第一个 var id=$(this.attr('href'); //我们使用它作为选择器(您也可以使用$('div.classname').find(id); 变量$段落=$(id); //我们显示我们想要的段落并隐藏它的兄弟 $paragration.show().sides().hide(); //确保浏览器未跟随链接/定位 返回false; });

    like?当然。如果不是,事件委派就不可能。like?当然。如果不是,事件委派就不可能。like?当然。如果不是,事件委派就不可能。like?当然。如果不是,事件委派就不可能。很抱歉,这会导致页面在单击时跳转,尝试跟随链接。
    return false;
    就是为了/我在那里添加了一些注释抱歉这会导致页面在点击时跳转,尝试跟随链接。
    return false;
    就是为了/我在那里添加了一些注释抱歉这会导致页面在点击后跳转,尝试跟随链接。这就是de>return false;用于/I添加了一些注释t