Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改父类_Javascript_Jquery_Html - Fatal编程技术网

Javascript 更改父类

Javascript 更改父类,javascript,jquery,html,Javascript,Jquery,Html,我的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&g

我的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>

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];
你应该做:

pDiv[0].className.match(


Cheers

使用jQuery的方法测试类:

if (pDiv.hasClass("class1")) 

pDiv
是一个jQuery对象,
className
是DOM元素的属性。你为什么不使用jQuery的
.hassClass()
方法?请检查这个为什么不
var pDiv=$(“#slidecarousel”)
@ArunPJohny-我真的不明白OP试图用
$(elem).parent(“#slidecarousel”)做什么
。答案的要点是,在访问
.className
之前,他们需要使用
[0]
来获取DOM对象。
pDiv.attr("class").match(
if (pDiv.hasClass("class1"))