-1

HTML

<div id="board">
  <div>ab X</div>
  <div>a <span class='target'>V</span> b</div>
  <div>Xab</div>
<div>

我想访问V我的 HTML 和 alert 中的 DOM 位置V,我不能使用$('#board').eq(1).text().charAt(2)。我需要它的 DOM 位置,以便我可以轻松地跟踪包装V.

这不起作用,正确的方法是什么?

alert($('#board').eq(1).eq(2).text());

这是最初的问题,我可以找到可以帮助我的人,所以我试图修改它我将如何获得文本所属的跨度类 ID?

算法:

1. Found V from row looping and y looping 
2. Find the span where it belongs to
4

1 回答 1

0

假设应选择span具有文本内容的元素,您可以使用方法:V.filter()

var $span = $('#board span').filter(function() {
   return (this.textContent || this.innerText) === 'V';
});

获取所选元素的索引:

$span.index();

Vspan 的父元素的文本内容中的字符索引:

var vIndex = $span.parent().text().indexOf('V'); 

请注意,jQuery 返回所选元素的 jQuery 包装数组,当您使用 ID 选择器时,返回的集合只有一个包装器/顶级所选元素:

Object[div#board]

.eq(1)就像从简单数组中通过索引获取元素一样)返回集合中不存在的第二个顶级选定元素。除此之外,.eq()以这种方式链接方法没有任何意义,因为它只返回一个元素。

于 2013-09-02T23:30:39.267 回答