如何在不使用getElementById方法的情况下测试元素是否存在?我已经设置了一个现场演示供参考.我也会在这里打印代码:
<!DOCTYPE html>
<html>
<head>
<script>
var getRandomID = function (size) {
var str = "",
i = 0,
chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
while (i < size) {
str += chars.substr(Math.floor(Math.random() * 62), 1);
i++;
}
return str;
},
isNull = function (element) {
var randomID = getRandomID(12),
savedID = (element.id)? element.id : null;
element.id = randomID;
var foundElm = document.getElementById(randomID);
element.removeAttribute('id');
if (savedID !== null) {
element.id = savedID;
}
return (foundElm) ? false : true; …Run Code Online (Sandbox Code Playgroud) 好的,我正在为自己写一个项目的js库,我有一个问题.像大多数其他库一样,为了保留我的变量范围,我将代码包装在此:
(function() {
// my code here
})();
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:我注意到jQuery传递了window对象并设置了自己的文档对象,如下所示:
(function(window) {
var document = window.document;
})(window);
Run Code Online (Sandbox Code Playgroud)
有谁知道他们为什么这样做?
在我的应用程序迁移文件的创建过程中,我注意到Laravel不支持数据库触发器!我已经接受了这样一个事实:我需要执行一个查询语句来实现这一点,但这也给了我麻烦..这是我的应用程序的代码片段:
Schema::create('users', function ($table) {
$table->increments('id');
$table->string('uuid', 36);
$table->string('email', 255);
$table->string('password', 255);
});
DB::statement('CREATE TRIGGER users_trigger_uuid BEFORE INSERT ON users FOR EACH ROW SET NEW.uuid = UUID()');
Run Code Online (Sandbox Code Playgroud)
当我运行artisan migrate时,它给出了以下错误:
[例外]
SQLSTATE [HY000]:一般错误:2030准备好的语句协议中不支持此命令(SQL:CREATE TRIGGER users_trigger_uuid在插入用户之前为每个行设置NEW.uuid = UUID())(绑定:数组( ))
除了创建自己的PDO对象和在Laravel之外执行查询之外,还有其他解决方案吗?这是MySQL异常还是Laravel异常?
编辑
从例外情况来看,很明显,准备好的陈述不支持触发器的创建......不确定为什么但是会喜欢一些见解.为了解决这个问题,我只运行了自己的PDO查询.
$default_driver = Config::get('database.default');
$connection_info = Config::get('database.connections.' . $default_driver);
$conn = new PDO('mysql:host=' . $connection_info['host'] . ';dbname=' . $connection_info['database'], $connection_info['username'], $connection_info['password']);
$conn->query('CREATE TRIGGER users_trigger_uuid BEFORE INSERT ON ' . $connection_info['prefix'] . 'users FOR EACH ROW SET NEW.uuid = UUID()');
Run Code Online (Sandbox Code Playgroud) 必须有办法做到这一点.我用html5画布绘制了一个形状,我想模糊它.据我所知,没有本机方法所以我假设需要一个js库.问题是大多数库只模糊像这样的图像.这可能吗?
我最近在 Safari 中遇到了一些关于 CSS 动画的奇怪行为,并且在操作 DOM 时无法更新元素位置。我拍了一些 GIF 来说明这一点:
在 Chrome ( http://recordit.co/cCim1IwyMc ) 中,当animation-delay在 DOM 中更新时,浏览器将按照您的预期更新元素的动画位置。
在 Safari ( http://recordit.co/3DRmEdo0FC ) 中,animation-delay在 DOM 中更新时,浏览器无法更新元素的动画位置。
这对我来说似乎是回流/重绘问题。我还注意到,当您将鼠标悬停在 Safari 浏览器中的动画元素上时,蓝色叠加层也跟不上动画。
我有一系列变量.我希望一个变量与前一个变量相等.例如:
var myVars = {
var1: "test",
var2: var1
};
alert(myVars.var2);
Run Code Online (Sandbox Code Playgroud)
//输出:未定义var1
有什么想法吗?我确信这是某种可变范围限制.我不想听.提前致谢.
我在这里设置了一个演示:http: //jsbin.com/evifeb/
这更像是一个大声思考而不是一个正确的问题但是......
为什么浏览器会将样式规则直接插入到计算样式对象中的旁边方法和保留字?这只是难以解析..例如,您可能会在我的演示中注意到我正在过滤掉除字符串和数字之外的所有内容.这是为了清除同一范围内的函数.虽然,这不是100%准确,因为长度属性值是一个数字.为什么没有像"getAllStyles"这样的原型函数返回没有废话的样式对象?
OKAY所以我知道"getPropertyValue",但这只有在你想要一个指定的样式规则时才有用.所以我想我想说的是:A)是否有一个正确的方法来返回这样一个交叉的对象浏览器安全?和B)如果没有,除了长度需要除草之外还有其他属性(不在css规范中)吗?
非常感谢帮忙.我已经准备好拔牙了.