更改家长班

用户名

我的JavaScript出现问题,无法完全解释。这是html:

<body>
<div id='slidecarousel' class='slide1' onclick='No functions can be here'>
<div id="sliderButton" onclick='pageSlider(this)'>Next Slide</div>
<div id='piece of slider...'></div>
<div...></div>
...
</div>
</body>

这是JavaScript和错误:

function pageSlider(elem)
{
    var pDiv = $(elem).parent('#slidecarousel')
    if ( pDiv.className.match(/(?:^|\s)slide1(?!\S)/) ){

**Uncaught TypeError: cannot call method 'match' of undefined**

         pDiv.className = "slide2";
    } else {
    pDiv.className = "SlideErr";
}
}
jfriend00

pDiv是一个jQuery对象,不是DOM元素,因此它没有className属性。您可以使用以下方法获得第一个DOM元素:

pDiv[0]

因此,只需更改此:

var pDiv = $(elem).parent('#slidecarousel')

对此:

var pDiv = $(elem).parent('#slidecarousel')[0];

作为额外的更改,这没有任何意义:

var pDiv = $(elem).parent('#slidecarousel')

如果只需要该#slidecarousel对象,则只需使用:

var pDiv = $('#slidecarousel')[0];

因为#slidecarousel无论如何在整个页面中只能有一个对象。


或者,如果您只想要的父项elem,则使用以下代码:

var pDiv = elem.parentNode;

或者,您也可以.closest()这样使用

var pDiv = $(elem).closet(".slide1")[0];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章