如何在jQuery中获得独特的价值?

时间:2010-05-21 08:49:40

标签: select jquery

我正在学习jQuery。

我在HTML文件中有以下代码块:

<table width="100%">
<tr>
    <td align='center'>
        <div>
            <a id='get_this' href='#'>
            <input type='hidden' id='id' value='1'><img src='images/1.gif'></a>
        </div>
    </td>
    <td align='center'>
        <div>
            <a id='get_this' href='#'>
            <input type='hidden' id='id' value='2'><img src='images/2.gif'></a>
        </div>
    </td>
    <td align='center'>
        <div>
            <a id='get_this' href='#'>
            <input type='hidden' id='id' value='3'><img src='images/3.gif'></a>
        </div>
    </td>
</tr>

我想要做的是,当我点击任何图片时,我可以得到&lt;输入隐藏&gt;值,以便我可以显示信息。例如,我单击id = 1,然后我将在其他地方显示有关id1的信息。我试过这个:

$("a#get_this").click(function(){
        var id = $('input[type=hidden]#id').val();
        window.alert("You have chosen the id: " + id);
});

它总是返回id:1给我。

4 个答案:

答案 0 :(得分:3)

在HTML文档中,ID必须是唯一的。我认为如果您有多个具有相同ID的元素,则行为是未定义的,但大多数浏览器可能会选择第一个元素。

改用类:

<table width="100%"> 
<tr> 
    <td align='center'> 
        <div> 
            <a class='get_this' href='#'> 
            <input type='hidden' value='1'><img src='images/1.gif'></a> 
        </div> 
    </td> 
    <td align='center'> 
        <div> 
            <a class='get_this' href='#'> 
            <input type='hidden' value='2'><img src='images/2.gif'></a> 
        </div> 
    </td> 
    <td align='center'> 
        <div> 
            <a class='get_this' href='#'> 
            <input type='hidden' value='3'><img src='images/3.gif'></a> 
        </div> 
    </td> 
</tr>

和JS:

$("a.get_this").click(function(){
        // find all input elements inside "a" (which is only one)
        var id = $(this).find('input').val(); 
        window.alert("You have chosen the id: " + id);
    });

答案 1 :(得分:1)

当ID应该是唯一的时,您会多次使用相同的ID。你应该使用类来代替:

<a class='get_this' href='#'> 

然后

$("a.get_this").click(function(){

答案 2 :(得分:1)

id在文档中应该是唯一的。将ID get_this更改为类:

<a class="get_this" href="#">..</a>

然后,您可以将输入字段的值设为:

$("a.get_this").click(function() {
    var id = $(this).children("input:hidden").val();
    window.alert("You have chosen the value: " + id);
});

隐藏的输入标记可以是:

<input type='hidden' value='1'>

请注意,执行以下操作时,某些浏览器可能会返回多于1个结果:

$("a#get_this").length

但这种行为无法保证,你永远不应该依赖它。为此目的,最好使用类或其他东西。

答案 3 :(得分:0)

ID必须是唯一的,因此您不能拥有多个具有相同ID的元素。但是如果您想要这个,您可以将点击处理程序附加到图像,添加'的ID数据'你想要你的图像(让我们说<img id="data1" ... />)。现在你拥有它。

备注:ID不能以数字开头。他们必须以一封信开头。