我正在制作一个井字游戏。我的问题是我的代码允许重写 X 或 O,即使其中一个正方形已经包含 X 或 O。我正在使用 if 语句根据每次增加 1 的数字变量编写 X 或 O。我想添加另一个条件,如果我的标签为空,则只允许写入 X 或 O。我该怎么做呢?。注意:请只使用 javascript,因为我还没有开始学习 jQuery。提前致谢!
JS
var tds = document.querySelectorAll("td");
var player = 1;
var str = "";
for (var i = 0; i < tds.length; i++) {
tds[i].addEventListener("click", function(){
if( player % 2 === 0 && tds[i] !== "<td>X</td>" && tds[i] !==
"<td>O</td>"){
this.textContent = "O";
} else if (player % 2 !== 0 && tds[i] === "" ) {
this.textContent = "X";
}
player++; …Run Code Online (Sandbox Code Playgroud) 以下javascript代码适用于 Chrome 和 Firefox,但不适用于 Internet Explorer。
window.external.vals = function(){alert("asdf");}Run Code Online (Sandbox Code Playgroud)
我已经在相应的控制台上尝试过,其他所有浏览器都可以正常工作,但 IE 会引发以下错误
“对象不支持此属性或方法”
任何的想法 ?
我看到许多网站(例如gitHub)更改了 html 内容并且URL没有刷新页面。
我找到了一种可能的方法来做到这一点HTML Histroy API。
这是代码。
超文本标记语言
<div class="container">
<div class="row">
<ul class="nav navbar-nav">
<li><a href="home.html" class="historyAPI">Home</a></li>
<li><a href="about.html" class="historyAPI">About</a></li>
<li><a href="contact.html" class="historyAPI">Contact</a></li>
</ul>
</div>
<div class="row">
<div class="col-md-6">
<div class="well">
Click on Links above to see history API usage using <code>pushState</code> method.
</div>
</div>
<div class="row">
<div class="jumbotron" id="contentHolder">
<h1>Home!</h1>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
首页.html
This is home page
Run Code Online (Sandbox Code Playgroud)
关于.html …
x 是一个数组。
我console.log(x)知道了
[ 'value' ]
Run Code Online (Sandbox Code Playgroud)
但是当我检查x的类型console.log(typeof x)时说它是一个对象。为什么?
搜索了一整天后,我被困住了,所以我想寻求帮助。
我怎样才能在 angular2 中实现这样的东西:http ://dfsq.github.io/ngView-animation-effects/app/#/page/1
我的意思是如何使用 Router 在 2 个页面之间无缝转换?我可以动画页面更改,但现在是这样的:
动画输入->第一页加载->动画输出->空路由器出口(因为组件被破坏) ->动画输入->第二页加载
但我想要:
动画输入->第一页加载->第一页动画输出->第二页动画输入->第二页加载->这里销毁第一页
任何帮助,将不胜感激 :)
我有两个同级元素。一个是图像,另一个是div。我想显示image元素(如果image存在)和show div元素(如果image不存在)。我的元素看起来像
<img ng-show="product.img" ng-src="{{product.img}}" />
<div class="left margin-right-1 line-height-15" ng-hide="product.img">{{product.img}}</div>
Run Code Online (Sandbox Code Playgroud)
并product.img导致类似/assets/images/prod.jpg。由于这是一个字符串,因此ng-show将始终为true,并且将显示image标签。因此,如果图像不存在,它将显示为残破图像。所以基本上我想要的是如果图像不存在,则隐藏图像标签并显示div,反之亦然。
我已经尝试过像
$scope.imageExists = function(src) {
var image = new Image();
image.src = src;
if (image.width == 0) {
return false;
} else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
并更改了我的图片标签
<img ng-show="product.img" ng-src="{{imageExists(product.img)}}" />
Run Code Online (Sandbox Code Playgroud)
但这非常昂贵。我每页有100种产品,当它遍历所有图像时,页面变得非常非常慢。
因此,如果图像存在与否,任何人都可以指导我显示和隐藏图像元素的最佳角度方法是什么。
如果您在Stackoverflow上搜索如何在JS中缓存变量,您将找到指向cookie或本地存储的答案.
另一方面,"缓存"这个词通常用作:"缓存数组的长度,这样我们就不必每次都计算它".
当然,我们不会在cookie或本地存储中缓存长度.我的问题是:
"缓存"长度的位置在哪里?它在记忆中吗?如果是这样,为什么我们使用"缓存"这个词?
是否有JS解决方案可下载由生成的PDF window.print()?我不需要打开打印窗口,而只需下载PDF。
我尝试了其他插件,但是生成的PDF window.print()正是我需要的。任何想法如何实现相同?
我正在努力实现一些我无法理解的东西.问题是,当记录特定用户时,我会在会话中存储用户并记录他.
在告诉我之前,我知道这不是最佳做法,但此页面的目的仅限于内部,并且不可能被黑客攻击,因为您只能在内部访问它.
无论如何,重点是表中有一些可编辑的字段,只能由管理员编辑,但只能由其他人看到.
为了实现可编辑的表,我使用了datatables库以及一些ajax和JQuery.
当记录的用户不是管理员而不是以下时,我想不出一种限制编辑的方法:
var logged = <?php echo $_SESSION['logged_user'];?>;
if (logged=='admin') {
// action here
}
Run Code Online (Sandbox Code Playgroud)
你知道更好的方法还是更容易理解?非常感谢你!
尽管诸如IE和FF之类的浏览器为用户提供了在打印中包含背景时进行设置的选项,但Edge在打印机设置中似乎没有此选项。
有没有办法可以通过代码或本机Edge JS命令激活此功能?