Javascript-将顶部样式从“更改为”;ul";作为div父级的子级
我想使用javascript更改css的最大值,但它不起作用 我有以下代码: HTML: Javascript:Javascript-将顶部样式从“更改为”;ul";作为div父级的子级,javascript,css,Javascript,Css,我想使用javascript更改css的最大值,但它不起作用 我有以下代码: HTML: Javascript: function Down() { var class_obj = document.getElementsByClassName("test"); var ul_obj = class_obj.getElementsByTagName("ul"); ul_obj.style.top = parseInt(ul_obj.style.top, 10) + 10
function Down() {
var class_obj = document.getElementsByClassName("test");
var ul_obj = class_obj.getElementsByTagName("ul");
ul_obj.style.top = parseInt(ul_obj.style.top, 10) + 10 + "px";
}
我遗漏了什么?看起来您必须在JSFIDLE上稍微更改JS加载。请看我的图片,了解一些关于如何继续的提示。在调试js时,alert是您最好的朋友
window.Down = (function() {
var ul_obj = document.querySelectorAll('.test ul');
Array.prototype.slice.call(ul_obj).forEach(function(element){
element.style.top = parseInt(element.style.top||50) + 10 + 'px';
})
});
window.onload中的函数Down()是一个带有JSFIDLE的局部变量。首先
getElementsByClassName
和getElementsByTagName
返回的不是元素。其次,在应用样式之前,检查parseInt返回的是一个数字
所有这些都可以通过调试代码找到。这应该是您的代码,以您想象的方式完成:
this.Down = function Down() {
var ul_obj = document.getElementsByTagName("ul");
if(!ul_obj[0].style.top) ul_obj[0].style.top = '50px';
ul_obj[0].style.top = parseInt(ul_obj[0].style.top, 10) + 10 + "px";
}
并通过
<button onclick="javascript:window.Down()">Move Down</button>
但是您需要设置位置:相对于您的.test类 - 当您需要将选项从“onload”更改为“No wrap-in”时,JSFIDLE无法工作
- 当您使用诸如“GetElementsByCassName”或“getElementsByTagName”之类的方法时,您会得到一个项目数组。因此,您需要引用数组的第一项
function Down() {
var oTest = document.getElementsByClassName("test")[0];
var oUl = document.getElementsByTagName("ul")[0];
oUl.style.top = parseInt(oUl.style.top, 10) + 10 + "px";
}
- 此外,我注意到您对元素使用了错误的方法。它应该是“”,而不是“getElementsByClassName”
getElementsByCassName()
的第二次调用。该功能仅在文档未捕获类型错误:对象#没有方法“GetElementsByCassName”
上受支持,但在警报上不确定是否是您最好的朋友。。。控制台可能会嫉妒-1。这并不能解决问题。代码不起作用的原因是getElementsByClassName()
仅在document
上受支持。第二个调用失败(参见给定示例中的控制台)。这个人对js/fiddle相当陌生(见鬼,我是新来fiddle的)。我认为教鱼比提供鱼更好。你的评论也很有帮助,但是有很多东西需要指出,比如“ul”不是类名。
<button onclick="javascript:window.Down()">Move Down</button>
this.Down = function Down() {
var ul_obj = document.getElementsByTagName("ul");
ul_obj[0].style.top = parseInt(ul_obj[0].offsetTop, 10) + 10 + "px";
}
function Down() {
var oTest = document.getElementsByClassName("test")[0];
var oUl = document.getElementsByTagName("ul")[0];
oUl.style.top = parseInt(oUl.style.top, 10) + 10 + "px";
}