我有一个问题,我无法弄清楚如何解决!如果您有任何想法,请协助:)
在我的DOM中有一堆objets,如下所示:
<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>
我需要得到一个包含任何div为Line6-10的jQuery对象(即包含6或更高版本的内容)....我试过用.gt()来玩但是无济于事。
帮助将不胜感激
答案 0 :(得分:5)
答案 1 :(得分:2)
使用jQuery选择器是不可能的。最好的方法是slice
方法:
$('div').slice(5); //select the sixth element and those after it
或者,如果您必须进行计算(例如,如果不是所有元素都存在或者它们没有按顺序排列),您可以执行以下操作:
$('div').filter(function() {
return (+this.id.slice(4) >= 6);
});
答案 2 :(得分:1)
您可以使用filter()
var divs = $("div[id^='Line']").filter(function(){
var text = "Line";
var value = this.id.split(text)[1];
return (value > 5);
});
答案 3 :(得分: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(','));
答案 4 :(得分:0)
您错过了ID属性的引号。
<div id=Line1>1</div>
--^
尝试使用filter
方法。
$('div[id^="line"]').filter(function(){
var = this.id.match(/\d+/g);
return (id >= 6 && id <= 10)
})
答案 5 :(得分:0)
试试这个
<强> $( “DIV [ID ^ = '5号线']”)。nextAll( “DIV [ID ^ = '行']”)强>
的API 的API答案 6 :(得分: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 here。