Javascript 正在更改此属性的数据属性

Javascript 正在更改此属性的数据属性,javascript,Javascript,我正在处理一个使用普通JavaScript的页面,不幸的是,我只熟悉jQuery。我在锚定标签上附加了一个功能来切换其他内容,我想在锚定上单击时将aria expanded从false更改为true,然后再次单击时返回到false 以下是我尝试过的: 功能切换表(a){ var t=这个; var e=document.getElementById(a); 如果(!e)返回true; 如果(e.style.display==“无”){ t、 setAttribute('aria-expand

我正在处理一个使用普通JavaScript的页面,不幸的是,我只熟悉jQuery。我在锚定标签上附加了一个功能来切换其他内容,我想在锚定上单击时将
aria expanded
false
更改为
true
,然后再次单击时返回到
false

以下是我尝试过的:


功能切换表(a){
var t=这个;
var e=document.getElementById(a);
如果(!e)返回true;
如果(e.style.display==“无”){
t、 setAttribute('aria-expanded','true');
e、 style.display=“块”
}
否则{
t、 setAttribute('aria-expanded','false');
e、 style.display=“无”
}
返回true;
}
扩展内容
在此扩展内容


根据您当前的实现
函数中的
toggleMe()
指的是
窗口
而不是当前元素(锚定)

您可以使用设置上下文

bind()
方法创建一个新函数,在调用该函数时,将其
this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列


功能切换表(a){
var t=这个;
var e=document.getElementById(a);
如果(!e)返回true;
如果(e.style.display==“无”){
t、 setAttribute('aria-expanded','true');
e、 style.display=“块”
}
否则{
t、 setAttribute('aria-expanded','false');
e、 style.display=“无”
}
返回true;
}
扩展内容
在此扩展内容


根据您当前的实现
函数中的
toggleMe()
指的是
窗口
而不是当前元素(锚定)

您可以使用设置上下文

bind()
方法创建一个新函数,在调用该函数时,将其
this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列


功能切换表(a){
var t=这个;
var e=document.getElementById(a);
如果(!e)返回true;
如果(e.style.display==“无”){
t、 setAttribute('aria-expanded','true');
e、 style.display=“块”
}
否则{
t、 setAttribute('aria-expanded','false');
e、 style.display=“无”
}
返回true;
}
扩展内容
在此扩展内容


您的问题在这一行:

var t = this;
默认情况下,该值为窗口对象。 可以直接在内联定义中传递值,如下所示:

<a onclick="return toggleMe('content1', this)" aria-expanded="false">Expand content</a>
扩展内容
在此扩展内容


您的问题在这一行:

var t = this;
默认情况下,该值为窗口对象。 可以直接在内联定义中传递值,如下所示:

<a onclick="return toggleMe('content1', this)" aria-expanded="false">Expand content</a>
扩展内容
在此扩展内容


您是说您不熟悉jQuery吗?
这是指窗口对象,因为您通过HTML属性使用“老式”事件处理。也可以将此
作为一个参数传入,使用答案中建议的绑定。。。或者可能至少使用“vanilla JS”事件处理程序绑定,意思是
addEventListener
&Co..您的意思是您不熟悉jQuery吗?
引用窗口对象,因为您通过HTML属性使用“老式”事件处理。也可以将此作为一个参数传入,使用答案中建议的绑定。。。或者至少使用“vanilla JS”事件处理程序绑定,意思是
addEventListener
&Co.…谢谢您的回答谢谢您的回答谢谢您的回答和详细解释,谢谢!谢谢您的回答和详细解释,谢谢!