Jquery - 来自选择器组的$(this)id

时间:2013-12-04 12:57:13

标签: javascript jquery html arrays undefined

因此 我已经定义了一个简单的列表和一个输出

<div class="item-list">
    <p id="One">First Item</p>
    <p id="Two">Second Item</p>
    <p id="Three">Third Item</p>
</div>

<div class="box">Add Stuff in Here!</div>

我写过这个剧本

$(".item-list > p").click(function(){
    var thisId = (this.id);
    $(".box").append('<p>' + thisId + '</p>');  
});

我想要 每个项目,单击,将其id作为文本附加到.box元素

喜欢如此

<div class="box>One</div>

这可行 就像你期望的那样。 JS Fiddle of the simplified Working Example.

但在我更复杂的例子中: 所选元素的id

(this.id)

回来......

的E w .. 未定义。

这是一个更复杂版本的JS小提琴:

http://jsfiddle.net/pQz3W/4/

是什么导致这些ID返回undefined?

要清楚,在更复杂的例子中,我正在做同样的事情,它只是拥挤其他功能。那里的东西导致我的身份恢复为未定义。

我会不断向这个小提琴发布更新,因为我越来越多地清理代码,只是为了解决这个问题所必需的内容!

2 个答案:

答案 0 :(得分:4)

你有一个数组

ServiceArray = [
    [
        ["SplashPage", "Splash Page", "hey!"],
        ["GamingWebsite", "Gaming Website", "yo!"],
        ["BasicWebsite", "Basic Website", "hi!"],
        ["AdvancedWebsite", "Advanced Website", "ooh!"],
        ["FlexWebsite", "Flex Website", "ahh!"],
        ......etc

你有ID,你正试图在这个数组中查找

var thisId = this.id;
var outputList = ServiceArray[0][thisId][2];

但是javascript中没有关联数组,并且您要查找的键不存在。您需要使用具有与您正在查找的实际匹配的键和值的对象重建该数组。

答案 1 :(得分:0)

试试这个:var thisId = $(this).attr("id");