Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含指定数字或更高数字的任何div id的jQuery选择器_Jquery_Html - Fatal编程技术网

包含指定数字或更高数字的任何div id的jQuery选择器

包含指定数字或更高数字的任何div id的jQuery选择器,jquery,html,Jquery,Html,我有一个问题,我就是想不出怎么解决!如果您有任何想法,请协助:) 在我的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</di

我有一个问题,我就是想不出怎么解决!如果您有任何想法,请协助:)

在我的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>
1
2.
3.
4.
5.
6.
7.
8.
9
10
我需要得到一个jQuery对象,其中包含第6-10行的任何div(即包含6个或以上的div)。。。。我试过玩弄.gt(),但没用


如果您特别希望
第6行
第10行
,您可以使用
操作员:

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(','));
var s=[];

对于(var i=x;i,使用jQuery选择器是不可能的。最好的方法是
slice
方法:

$('div').slice(5); //select the sixth element and those after it
或者,如果您必须进行计算(例如,如果并非所有元素都存在或它们不按顺序排列),您可以这样做:

$('div').filter(function() {
    return (+this.id.slice(4) >= 6);
});
你可以用


您错过了ID属性的引号

<div id=Line1>1</div>
      --^
试试这个

$(“div[id^='Line5'])。下一个安装(“div[id^='Line'])

API关于

API about

选择id以“Line”开头的
,然后将匹配集减少为第5个之后的集(索引基于0):

我的解决方案使用和

$(函数(){
$elems=$(“div[id^='Line']);
$elems.filter(函数(){
var matches=this.id.match(/\d+/);
var numb=parseInt(匹配[0]);

return((numb>5)和&(numb@freebird:slice())实际上没有考虑到ID,并且盲目地假设div的顺序与ID匹配。将div移动到随机顺序中,然后切片()行不通。@lonesomeday:评论是针对freebird的。我现在添加了
@
。这取决于与索引匹配的div的排序顺序。如果id为
Line10
的div是第一个div,例如
gt()
将不起作用。将演示中的最后两个div移到顶部,您就会看到。@FrançoisWahl是的,这是正确的,这是解决给定问题的合理方法。似乎更可能的用例是,OP对“最后n行”比对“包含6、7、8、9、10的行”有一些特定的任务。问题不存在明确说明哪一个,但没有理由假设它们不符合顺序。事实上,“行”以数字顺序出现似乎更直观,不是吗?我肯定认为这是一个比依赖id中的数字更安全、更一般的答案。
<div id=Line1>1</div>
      --^
$('div[id^="line"]').filter(function(){
   var = this.id.match(/\d+/g);
   return (id >= 6 && id <= 10)  
})
$('div[id^=Line]:gt(4)')
$(function() {
   $elems = $("div[id^='Line']");
    $elems.filter(function() {
        var matches = this.id.match(/\d+/);
        var numb = parseInt(matches[0]);
        return ((numb > 5) && (numb <= 10));                
    });
});