使用jQuery从行中提取值

时间:2014-03-01 21:08:30

标签: javascript jquery html

我正在使用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;从列表中。

4 个答案:

答案 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)

Demo

下面的代码将完成工作

var html = "<span0>o</span0><span1>x</span1><span2>o</span2>";
var values = $.map($(html), function( n, i ) {
   return $(n).html();
});
console.log(values);