我正在使用javascript构建一个井字游戏。问题是当我在每次搬家后检查董事会是否有任何获胜者时。
当我运行这个jQuery函数时
$( "#row1")[0].innerHTML
输出
"<span0>o</span0><span1>x</span1><span2>o</span2>"
因为每个html元素具有不同的跨度,所以我不太确定如何在不写出所有可能性的情况下进行检查。我查看了SOF并找到了Get array of values use JQuery?。它非常相似,但它并不能解释不同的span标签,例如(span0,span1,span2)。
我试图了解如何只能获得&#39; o&#39; x&#39;&#39; o&#39; o&#39;从列表中。
答案 0 :(得分:3)
为了让你在一个字符串中找到“oxo”,然后你可以使用它来处理,你可以使用:
// gets you "oxo"
$( "#row1").text();
如果你想在数组中使用这些字符,你可以这样做:
// gets you ["o", "x", "o"]
$( "#row1").text().split("");
答案 1 :(得分:1)
我不认为这些跨度是有效的html5标签。每个span标签都应该是。如果您使用单独的跨度名称将文本插入其中,那么最好通过id执行此操作,例如。因此,无论您在何处引用$(“span1”)或$(“#row1 span1”),您都可以像这样引用id:$(“#square1”)以插入x和o文本。还有其他方法可以做到这一点,但出于这些目的,最好有9个独立的ID。这样,您引用的链接中将它们读入数组的示例基本上就是您所需要的。
如果你真的不想这样做,那么添加一个给你所有span标签一个class ='box'类。例如:。在这种情况下,根据您在链接中提供的示例读入数组的代码必须从$('#row1 span')更改为$('#row1 .box')(注意“box”之前的时间段表示我们正在寻找类,而不是标记名称)我不喜欢这个第二个解决方案,因为它不能修复无效的html5标记。
我想可能有一种方法可以使用通配符来搜索所有以“span”开头的元素,但这样会更难看。
答案 2 :(得分:0)
以下是如何获取它,我们将遍历#row1的子span元素并提醒它们的文本值(这是内部文本):
$("#row1").children().each(function()
({
alert($("this").text());
});
答案 3 :(得分:0)
下面的代码将完成工作
var html = "<span0>o</span0><span1>x</span1><span2>o</span2>";
var values = $.map($(html), function( n, i ) {
return $(n).html();
});
console.log(values);