这似乎很简单但它不起作用(未定义)。
我已将var设置为<ul>
,这是<div>
元素“feature_tabs_indicators”的子项。
pBoxShadowProperty函数获取当前浏览器支持的BoxShadow属性。
最后的语句只是将pBoxShadowProperty设置为0,即它覆盖了CSS set Box-Shadow属性。
有人可以在最后一句话中解释我在做错的事吗?
最佳,
var iActiveNo = 0;
var eTabInd = document.getElementById ("feature_tabs_indicators").children[0];
var pBoxShadowProperty = getSupportedCSSproperty(["boxShadow", "mozBoxShadow", "webkitBoxShadow"]);
function getSupportedCSSproperty (propertyArray)
{
var root = document.documentElement;
for (var i = 0; i < propertyArray.length; i++)
{
if (typeof root.style[propertyArray[i]] === "string")
{
return propertyArray[i];
}
}
}
iActiveNo = iActiveNo + 1;
eTabInd.children[iActiveNo - 1].style[pBoxShadowProperty] = "";
Here is the jsfiddle, press the light green button 'rght' on top right.
答案 0 :(得分:2)
我想我知道你的问题是什么。你在这里使用:
iActiveNo = iActiveNo + 1;
您发布的代码中尚未定义的内容。但是你确实有:
var iActive = 0;
我认为其实应该是:
var iActiveNo = 0;
否则你的代码中会出现JS错误(无论如何都会发布)。
除此之外(也就是说,如果您打算从<li>
元素中取出第一个<ul>
元素并删除其box-shadow
CSS属性) - 您的代码就可以了
修改强>
老兄,真是个烂摊子...... :)这是JSFiddle我修了一下。以下是解释。
在我们遇到真正的问题之前,应该修复JSFiddle中的一些事情。
你在那个小提琴中有错误 - 请参阅控制台。这一行:
var pBackgroundColorProperty = eStyle.backgroundColor //[pBoxShadowProperty];
不以分号结尾,然后由于(...)在下一行(我认为)而被解释为函数 - 这对于(至少对我来说)导致JS控制台出错。如果添加了分号 - 错误就消失了。
另外......有一句话:
console.log (eTabInd.children[iActiveNo-1].style.pBoxShadowProperty);
打印您的undefined
,正是下面讨论过的,应该是
console.log (eTabInd.children[iActiveNo-1].style[pBoxShadowProperty]);
然后打印空字符串。
此外,打印时,您的pBoxShadowProperty
变量包含boxShadow
字符串。当然,这不是我熟悉的有效CSS属性。所以这个:
eTabInd.children[iActiveNo - 1].style[pBoxShadowProperty] = "";
不会做任何事情。
现在问题就在这里......
eTabInd.children[iActiveNo-1].style
开头没有'box-shadow'属性,因为您没有将其放在style
元素的<li>
属性中。它通过此CSS选择器序列的优点放在<li>
元素上:#feature_tabs_indicators ul #ind_bt
。
现在,由于您需要style
属性 - 您将无法获得上述CSS选择器序列适用的计算样式。因此 - 您将无法将其删除。
您可以做的是创建另一个没有box-shadow
属性的类,并用它替换原来的c_ind
。
答案 1 :(得分:-1)
看起来你没有正确设置值,因为它应该像
eTabInd.children[iActiveNo - 1].style.pBoxShadowProperty = "";
帮助或剂量仍然返回0的剂量?