<div id="table1"></div>
<div id="table2"></div>
<div id="table3"></div>
<div id="table4"></div>
<div id="table5"></div>
...
如何使用&#34; table&#34;选择所有元素和ID&gt; 4。
答案 0 :(得分:3)
这样的事可能会对你有所帮助:
var test = /table(\d+)/;
$("[id^='table']").filter(function () {
return parseInt(test.exec(this.id)[1], 10) > 4;
});
它将匹配以'table'
开头的所有元素,然后过滤掉那些以小于或等于4
的值结尾的元素。
答案 1 :(得分:1)
你可以用表[id ^ =&#39; table&#39;]查看id开头的每个元素,并检查其余的(数字)是否大于4
此处示例http://jsfiddle.net/fLg00oxq/2/
$("[id^='table']").each(function(){
var id = $(this).attr('id').substr(5); // remove table and leave just the number
if(id > 4 ){
// Your code here
}
});
答案 2 :(得分:1)
修改,更新
尝试
v1(对于按数字排序的id
,即,table1
- &gt; table2
)
$("[id=table4] ~ [id*=table]")
v2(无序id
)
$("[id*=table]").not(function() {
// return elements that _don't_ match the selector ,
// `id` cast as `Number` <= 4
return this.id.match(/\d+/)[0] <= 4
})
见
Attribute Equals Selector [name="value"]
Next Siblings Selector (“prev ~ siblings”)
Attribute Contains Selector [name*="value"]
$("[id*=table]").not(function() {
// return elements that _don't_ match the selector ,
// `id` cast as `Number` <= 4
return this.id.match(/\d+/)[0] <= 4
})
.each(function() {
this.innerText = this.id
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="table10"></div>
<div id="table2"></div>
<div id="table9"></div>
<span></span>
<div id="table6"></div>
<div id="table5"></div>
<div id="table1"></div>
<div id="table7"></div>
<div id="table8"></div>
<div></div><br />
<div id="table3"></div>
<div id="table4"></div>
答案 3 :(得分:0)
这样做:
$("div[id^=table]").slice(4);
基本上它选择id为#34; table&#34;的所有div元素。之后,它删除了四个第一个匹配项并返回所有剩余的jQuery对象。
所以这假设有<div id="table1"> ... <div id="table2"> ... <div id="table[n+1]">
。
答案 4 :(得分:0)
如果您订购的div将在示例中:
修改HTML:
<div class="table"></div>
<div class="table"></div>
<div class="table"></div>
<div class="table"></div>
<div class="table"></div>
脚本
$(document).ready(function() {
$('.table:gt(2)').each(function() {
// Apply your functions for each div ....
});
}
答案 5 :(得分:0)
<强> demo 强>
var $tables = $('[id^=table]').filter(function(){
return +this.id.replace(/\D+/,'') > 4;
});
$tables.hide(); // Use example
以上将从选择器ID中获取数字,并在大于4时进行比较。$tables
现在将生成jQuery的filter()
方法返回的元素集合。 / p>
.replace(/\D+/,'')
将删除所有非数字(D+
)字符;一元+
会将String结果转换为Number,而> 4
会将所需的结果转换为。
对于micro-Plugin扩展,您可以选择:
// Retrieve elements from mixed ID str+number
// Returns a collection of elements with ID number greather than the num argument
$.fn.idNumGreaterThan = function(num){
return this.filter(function() {
return +this.id.replace(/\D+/,'') > num;
});
};
$('[id^=table]').idNumGreaterThan(4).hide();
// Also with class selectors (element must have a mixed alphaNumeric ID)
$('.element').idNumGreaterThan(4).hide();
答案 6 :(得分:-1)
您可以尝试使用此代码,但我认为有更好的方法可以执行此操作:
for (var i = 4; i <= 100; i++) {
$('#table'+i)...
};
答案 7 :(得分:-1)
您可以尝试像$('div[id~=table]')