1

ご覧いただきありがとうございます。役に立つ回答はすべて投票されます。これは私のマークアップです。cmk1 and cmk2コンテンツRIGHTと連続した順序で2 つの連続する div を見つけようとしていますHERE

  • div id 1rightbut not があるため一致しないはずhereです。
  • div id 3herea but no があるため一致しないはずrightです。
  • div id 2whereの後にrightが続くようなものを見つけようとしていますhere。また、テキストは正確<div>more than right</div>である必要があります。単語が含まれていても一致してはなりませんright

これを行う最も効率的な方法は何ですか?

更新: 思いついたのですが、 を見つけることができeach class=cmk1ました。それが正しく一致する場合は、その (cmk2) を選択できます。それnextも一致する場合は、それが探しているものです。whileしかし、jqueryでこのループを行うにはどうすればよいですか? そして最も重要なことは、どうやってそれを終了するのですか?

<div class="sep" id="1">
  <div class="cmk1">right</div>
  <div class="cmk2">valc</div>
  <div class="opp">vald</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">
<div class="sep" id="12">
  <div class="cmk1">RIGHT</div>
  <div class="cmk2">HERE</div>
  <div class="opp">vala</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">
<div class="sep" id="59">
  <div class="cmk1">vale</div>
  <div class="cmk2">valf</div>
  <div class="opp">here</div>   
  <a class="go">Go</a>                  
</div>
<div class="clear">
4

3 に答える 3

3
$('div.sep > div').each(function() {
    if($(this).text() == 'RIGHT') {
        if($(this).next('div').text() == 'HERE') {
            alert('Values occur consecutively in div id: ' +  $(this).parent().attr('id'));
            return false;            
        }
    }
});

基本的に、各 .sep div のすべての子 div をループし、最初の単語をテストしました。一致したnext場合、次の div に 2 番目の単語が含まれているかどうかを判断するために使用できます。

于 2009-10-16T18:33:13.600 に答える
1
$(':contains(RIGHT) :contains(HERE)')
于 2009-10-16T18:27:11.163 に答える
1

試す:

$(':contains(right), :contains(here)')
    .filter( function() {
        return ( $(this).text() == 'right' && $(this).next().is(':contains(here)') ) ||
            ( $(this).text() == 'here' && $(this).prev().is(':contains(right)') );
    } );

唯一の欠点は、大文字と小文字が区別されることです。

于 2009-10-16T18:32:09.313 に答える