我有以下jQuery代码来检查data-target属性是否具有此值。
if ($('.btn').data("target") === "#accordion-description"){
alert('yes');
$(this).hide();
}
警报将触发,但是“ this”不会隐藏。
这里是HTML:
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#accordion-description" aria-expanded="false">Description</button>
如何使用“ this”隐藏按钮?
更新:通过以下方式找到了解决方案:$('。btn [data-target =“#accordion-description”]')。hide();
在该代码的上下文中,this
并未特别标识任何内容。 (如果有的话,它是window
对象。您可能无法隐藏也不想将其隐藏。)
如果.btn
可以标识多个元素,则可能要遍历它们。 jQuery的.each()
可以简化工作,在其回调中,您可以获得this
引用元素的好处。例如:
$('.btn').each(function () {
if ($(this).data("target") === "#accordion-description") {
alert('yes');
$(this).hide();
}
});
(由于[C0]被调用两次,您甚至可能希望将其存储在变量中并仅引用该变量。对性能的细微改进,取决于您的可读性。]
或者,如果您just想隐藏元素,而整个“警报”只是用于测试,则无需像这样使它过于复杂。您可以只在选择器中标识目标元素并将其隐藏:
$(this)