1

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>
4

5 に答える 5

4

varキーワードの使いすぎが原因で、ある種の可変スコープの衝突が発生しているようです。

このフィドルを参照してください-http://jsfiddle.net/alnitak/acGmQ/ここで、外部を宣言しitemId、関数の内部でコードを複製しました。

その関数の内部でitemIdは、外部スコープのオリジナルは使用できなくなり、使用できるようにundefinedなるため、最終的にはになります#item_undefined

代わりに、次のように記述します。

var sel = '#item_' + itemId;
if ($(sel).length > 0) {
    alert("exist");
}
于 2012-05-13T17:03:28.993 に答える
1
var itemId = '#item_+' + itemId;

注意してください_+

そうではない

于 2012-05-13T16:56:31.050 に答える
1

試しましたか:

var item = $('#item_'+itemId); if(item.length > 0).... 

于 2012-05-13T17:00:56.060 に答える
0
var itemId = '#item_' + itemId; // #item_+ << what +?
if ($(itemId).length > 0) {
   alert("exist");
}
于 2012-05-13T16:56:44.657 に答える
0
if($('#item_'+itemId))
{
alert('exist');
}
于 2012-05-13T18:04:40.833 に答える