我在页面上有一个p
标签列表,ID为:
item_1
item_2
item_3
etc.
在jquery函数中,我为id构建字符串,而不是想要更改它的某些值,但是它接触到jquery找不到具有此id的元素,但它在页面上有:
...
var itemId = '#item_' + itemId;
if ($(itemId).length > 0) {
alert("exist");
}
...
在itemId变量中ID很好。我在这里做错了也许我的方法是错的? 标记
<div>
<a href="#"><p id="item_283">Counter</p></a>
</div>
答案 0 :(得分:4)
由于过度使用var
关键字,您似乎遇到了某种可变范围冲突。
请看这个小提琴 - http://jsfiddle.net/alnitak/acGmQ/,其中我声明了一个外部itemId
,然后在一个函数中我复制了你的代码。
在该功能中,来自外部范围的原始itemId
不再可用,它是undefined
,因此您最终得到#item_undefined
。
相反,写一下:
var sel = '#item_' + itemId;
if ($(sel).length > 0) {
alert("exist");
}
答案 1 :(得分:1)
var itemId = '#item_+' + itemId;
请注意_+
那不对
答案 2 :(得分:1)
你有没有尝试过:
var item = $('#item_'+itemId); if(item.length > 0)....
答案 3 :(得分:0)
var itemId = '#item_' + itemId; // #item_+ << what +?
if ($(itemId).length > 0) {
alert("exist");
}
答案 4 :(得分:0)
if($('#item_'+itemId))
{
alert('exist');
}