Javascript 在jQuery参数中调用DOM
我还在学习jQuery,我正在创建一个非常简单的jQuery函数,它使用一个参数,然后在参数中调用div。但是它不起作用。我在控制台中没有收到任何错误。这是我的密码:Javascript 在jQuery参数中调用DOM,javascript,jquery,dom,Javascript,Jquery,Dom,我还在学习jQuery,我正在创建一个非常简单的jQuery函数,它使用一个参数,然后在参数中调用div。但是它不起作用。我在控制台中没有收到任何错误。这是我的密码: function square(oneDiv) { var divWidth = oneDiv.width(); oneDiv.height(divWidth); } square($('.art')); 任何帮助都将不胜感激。试试这个。还要确保在dom中加载带有class='art'元素的元素后加载查询代码
function square(oneDiv) {
var divWidth = oneDiv.width();
oneDiv.height(divWidth);
}
square($('.art'));
任何帮助都将不胜感激。试试这个。还要确保在dom中加载带有class='art'元素的元素后加载查询代码
function square(oneDiv) {
var myDiv = $(oneDiv);
var divWidth = myDiv.css('width');
myDiv.css('height', divWidth);
}
square('.art');
有几件事可能会出问题 1此代码运行时,DOM可能不存在。在这种情况下,将函数调用包装在$document.ready中,这样可以确保函数运行时.art将存在:
function square(oneDiv) {
var divWidth = oneDiv.width();
oneDiv.height(divWidth);
}
$(document).ready(function () {
square($('.art'));
});
2.艺术元素可能有一个显示:内联样式。确保它是display:block或display:inline块。将忽略内联元素上的高度和宽度样式
示例:如果选择器“.art”与文档中的任何内容都不匹配,则代码将不会执行任何操作,也不会出现任何错误。您可以通过记录oneDiv.length来检查这一点。控制台中有哪些错误?为什么?将jQuery对象作为参数传递给函数,然后使用其方法完全可以。顺便说一句,css的“宽度”!=。宽度为了可重用性,将其更改为将jQuery对象作为参数而不仅仅是类/id不是更好吗?@natzim,我认为“获取”元素的方法应该由方法决定,这样您可以重构方法,但拥有接口,即squareString;相同的。例如,您可能会停止使用jquery而使用mootools!您仍然可以使用squareString并只重构方法。如果解释了为什么它更好,我完全支持建议更好的替代方案,但OP问题中的代码没有错,所以重构并不能解释为什么它不能按预期工作。@好的一点是,我想这取决于OP想使用函数做什么。