-1

HTML

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

VHTML と 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();

Vスパンの親要素のテキスト コンテンツ内の文字のインデックス:

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

ID セレクターを使用しているため、jQuery は選択された要素の jQuery でラップされた配列を返すことに注意してください。返されるコレクションには、ラッパー/トップレベルの選択された要素が 1 つだけ含まれます。

Object[div#board]

.eq(1)(単純な配列からインデックスで要素を取得するのと同じように) コレクションに存在しない 2 番目のトップレベルの選択された要素を返します。それを除けば、.eq()そのようにメソッドをチェーンすることは、1つの要素しか返さないため意味がありません。

于 2013-09-02T23:30:39.267 に答える