2

解決方法がわからない問題があります。アイデアがあれば、助けてください:)

私のDOMには、以下のようにたくさんのオブジェクトがあります:

<div id=Line1>1</div>
<div id=Line2>2</div>
<div id=Line3>3</div>
<div id=Line4>4</div>
<div id=Line5>5</div>
<div id=Line6>6</div>
<div id=Line7>7</div>
<div id=Line8>8</div>
<div id=Line9>9</div>
<div id=Line10>10</div>

Line6-10 (つまり、6 以上を含む) の div を含む jQuery オブジェクトを取得する必要があります。.gt() をいじってみましたが、役に立ちませんでした。

助けていただければ幸いです

4

7 に答える 7

5

<div>「Line」で始まる ID で選択し、一致したセットを 5 番目以降のものに減らします (インデックスは 0 ベースです)。

$('div[id^=Line]:gt(4)')

デモ

于 2012-09-12T11:23:31.977 に答える
2

これは、jQueryセレクターでは不可能です。最も良い方法は次のslice方法です。

$('div').slice(5); //select the sixth element and those after it

または、計算を行う必要がある場合(たとえば、すべての要素が存在しない場合や順序が正しくない場合)、次のようにすることができます。

$('div').filter(function() {
    return (+this.id.slice(4) >= 6);
});
于 2012-09-12T11:18:20.867 に答える
1

filter()を使用できます

var divs = $("div[id^='Line']").filter(function(){
    var text = "Line";
    var value = this.id.split(text)[1];

    return (value > 5);
});

デモ

于 2012-09-12T11:20:06.683 に答える
0

Line6特に必要な場合は、次の演算子Line10を使用できます。,

var q = $('#Line6,#Line7,#Line8,#Line9,#Line10');

セレクターを動的に作成できます。つまり、項目 からxまでy:

var s = [];
for (var i = x; i <= y; i++) s.push('#Line' + i);
var q = $(s.join(','));
于 2012-09-12T11:15:42.017 に答える
0

ID 属性の引用符がありません。

<div id=Line1>1</div>
      --^

filterメソッドを使用してみてください。

$('div[id^="line"]').filter(function(){
   var = this.id.match(/\d+/g);
   return (id >= 6 && id <= 10)  
})

http://jsfiddle.net/jWY3Q/

于 2012-09-12T11:21:13.303 に答える
0

これを試して

$("div[id^='Line5']").nextAll("div[id^='Line']")

nextAll()に関する API

で始まる属性に関する API

于 2012-09-12T11:22:58.240 に答える
0

Attribute Starts With Selector.filter()を使用した私のソリューション。

$(function() {
   $elems = $("div[id^='Line']");
    $elems.filter(function() {
        var matches = this.id.match(/\d+/);
        var numb = parseInt(matches[0]);
        return ((numb > 5) && (numb <= 10));                
    });
});

ここでjsFiddle 。

于 2012-09-12T11:39:34.160 に答える