在jQuery中设置属性然后检索它

时间:2011-08-17 02:57:12

标签: jquery

我有

var results="<div title='"+id+"'><img src='"+thumb+"'></div>";

我将此呈现给页面,然后尝试检索id变量。要做到这一点,我有:

$("#results").click(function() { var id=$(this).attr("title"); });

现在,id正在返回undefined。我想我首先没有正确设置属性。我该怎么做呢?如果我需要提供更多细节,请告诉我。

5 个答案:

答案 0 :(得分:1)

要获取ID,您需要检索"id"而不是"title"

var id=$(this).attr("id");

...虽然你真的不需要jQuery方法:

var id = this.id;

或者,如果您尝试按变量名称“结果”选择元素,则无法执行此操作。它必须是元素本身的属性,而不是对它的某些变量引用的名称。

答案 1 :(得分:1)

在点击处理程序this中指向#resultstitle正在设置为其他div。您需要找到div并从中获取title属性。如果#results与您设置div的{​​{1}}相同,则该div中应该有title,因为您是按ID选择的。

id="results"是一个JavaScript变量,你在寻找像这样的东西

results

答案 2 :(得分:0)

从你的例子中可以看出id =“results”的内容是什么?我假设它不是你的div属性。

试试这个:

$("#results div[title]").click(function() { var id=$(this).attr("title"); });

或者更好的是只为该div添加一个类

var results="<div class='result' title='"+id+"'><img src='"+thumb+"'></div>";

$("#results .result").click(function() { var id=$(this).attr("title"); });

答案 3 :(得分:0)

除非你遗漏了一些东西,否则这段代码没有多大意义。我假设你以某种方式向DOM添加结果?如果是这种情况,除非缺少更多的javascript代码,否则您尚未为其分配ID。因此,当您检索ID为“结果”的标识符时,您获得了什么?

尝试打印出$("#results")的长度......你有什么收获吗?

attr("title")是读取属性的正确方法,但这不是ID的同义词,所以我有点困惑。您的ID当然是结果,如您的选择器所示。

答案 4 :(得分:0)

尝试更改您的代码,以便您可以引用div - 我正在使用id“theDiv”,但您可以使用任何内容:

var results="<div id='theDiv' title='"+id+"'><img src='"+thumb+"'></div>";

我将此呈现给页面,然后尝试检索id变量。要做到这一点,我有:

$("#results").click(function() { var id=$('#theDiv').attr("title"); });