可以存在任意数量的元素,具有以下ID。
<div id="my-div-1">Title 1</div>
<div id="my-div-2">Title 2</div>
<div id="my-div-3">Title 3</div>
<div id="my-div-4">Title 4</div>
我想循环遍历这些元素,看看ID末尾的数字是否与变量中的数字匹配。
到目前为止,我认为这不起作用:
var myNum = 3
var findNum = /[\d]+/;
var findElement = document.getElementById('my-div-' + findNum);
for(i=0; i<findElement; i++) {
if (myNum = findNum) {
console.log('Success! myNum = ' + myNum +
' and findNum = ' + findNum +
' and findElement = ' + findElement);
}
else {
console.log('Fail! myNum = ' + myNum +
' and findNum = ' + findNum +
' and findElement = ' + findElement);
}
}
答案 0 :(得分:6)
使用jQuery,您可以选择以下内容:
var id = 4;
var $element = $("#my-div-" + id);
其中id是保存数字的变量。
答案 1 :(得分:4)
您可以像这样直接引用元素:
非jQuery方法:
var myNum = 3;
var el = document.getElementById('my-div-' + myNum);
if (!el) {
alert("Fail");
} else {
alert("Success");
}
工作示例:http://jsfiddle.net/EtZxh/4/
jQuery方法:
如果您想使用jQuery,只需替换为以下内容:
var myNum = 5;
var el = $('#my-div-' + myNum);
if (el.size() == 0) {
alert("Fail");
} else {
alert("Success");
}
答案 2 :(得分:1)
getElementById
不会返回多个元素。它只返回一个:
var elem = document.getElementById('my-div-' + number);
if (elem) {
// elem exists
}
和jQuery:
if ($('#my-div-' + number).length > 0) {
// elem exists
}
答案 3 :(得分:0)
var myNum = 3;
$('div[id^="my-div-"]').each(function() {
console.log("hello");
if(myNum === parseInt($(this).attr('id').replace('my-div-',''), 10)) {
alert("found => " + $(this).attr('id'));
} else {
// do else
}
});
答案 4 :(得分:0)
你可以在jQuery中做这样的事情
var num = 3;
$("div[id^='my-div-']").each(function(){
var id = this.id;
if(id.slice(-1) === num){
alert("Success: " +id);
}else{
alert("Fail : " +id)
}
});