1 回答
TA贡献1827条经验 获得超9个赞
设置属性https://api.jquery.com/attr/有attratjquery 方法。
同样var $currQuestion = $accordionToggles.eq(i), $currAnswer = $currQuestion.closest('dt').next('dd')在这里,您将问题声明为单个元素,并将答案作为数组,因此您必须添加eq(0)到$currQuestion.closest('dt').next('dd'),或者遍历所有 el2 项目以设置属性。
当您包装dd到其他标签divs时,jquerynext()无法在dt附近找到,因此您$currAnswer的未定义,您必须使用$currQuestion.closest('dt').next('.tab-content.tab-space').find('dd')
解决方案:
setAriaAttr = function (el, ariaType, newProperty) {
el.attr(ariaType, newProperty);
},
setAccordionAria = function (el1, el2, expanded) {
setAriaAttr(el1, 'aria-expanded', expanded);
setAriaAttr(el2, 'aria-expanded', !expanded);
},
...
for (var i = 0; i < $accordionToggles.length; i++) {
var $currQuestion = $accordionToggles.eq(i),
$currAnswer = $currQuestion.closest('dt').next('.tab-content.tab-space').find('dd').eq(0);
工作小提琴https://jsfiddle.net/w7gpLrse/
- 1 回答
- 0 关注
- 179 浏览
添加回答
举报