0

名前を列挙する単純な html を作成し、その上に人々の名前をクラスとして配置しました。次に、クラス名を取得し、配列と照合します。結果は未定義です。ここに私のコードがあります:

var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList.nameout;

alert(nameValue); //this pops up as undefined

alert(nameList.rom) // this pops up as 'Rommel Santiago'

私は何を逃したのですか?

ありがとう。

4

3 に答える 3

2

問題は、配列を正しく参照していないことです。私はあなたのクラス名$(this)rom holy

あなたはromこのように取得しています:var name_out = n[0];

romでキーを参照すると、次のnameListようになります。

var nameValue = nameList[name_out];

これを行った後、更新されたコードは次のようになります。

var prof_name = $(this).attr('class');
var n = prof_name.split(' ');
var name_out = n[0];

var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert(nameValue); //this pops up as Rommel Santiago

作業例: http://jsfiddle.net/6GM7T/2/


さらに

データの保存にクラスを使用しないことをお勧めします。

data次のように、代わりに属性タグを使用できます。

<div id="myDiv" data-name="Rommel Santiago"></div>

そして、これを使用して jQuery でそのデータを簡単に取得できます。

$('#myDiv').data('name'); //returns Rommel Santiago
于 2013-04-12T15:09:21.530 に答える
1

彼らが言ったように

これで動作します

var prof_name = "rom holy";
var n = prof_name.split(' ');
var name_out = n[0];
alert("Parameter Selected = "+name_out);
var nameList = {'rom':'Rommel Santiago','holy':'Holiander Fields'};
var nameValue = nameList[name_out];

alert("From Object : "+nameValue); //this pops up as undefined

alert("Actual Value = "+nameList.rom) // this pops up as 'Rommel Santiago'

http://jsfiddle.net/Kartheek/nx3WQ/1/

nameList.nameout のように呼び出すと、実際には nameout が namelist のパラメータとして検索されます

nameList[nameout] を使用すると、インデックスの nameout 値が検索されます。

于 2013-04-12T16:02:09.230 に答える