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

在jQuery中设置属性,然后检索它,jquery,Jquery,我有 var结果= 我将把它呈现到页面上,然后稍后尝试检索id变量。为此,我必须: $("#results").click(function() { var id=$('#theDiv').attr("title"); }); $results.clickfunction{ var id=$this.attrtTitle;} 现在,id返回为未定义。我想我一开始没有设置好属性。如何正确地执行此操作?如果需要提供更多详细信息,请告诉我。要获取ID,您需要检索ID而不是标题: …尽管您确实不需要j

我有

var结果=

我将把它呈现到页面上,然后稍后尝试检索id变量。为此,我必须:

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


现在,id返回为未定义。我想我一开始没有设置好属性。如何正确地执行此操作?如果需要提供更多详细信息,请告诉我。

要获取ID,您需要检索ID而不是标题:

…尽管您确实不需要jQuery方法:

var id = this.id;

或者,如果您试图通过其变量名结果来选择元素,您就不能这样做。它需要是元素本身的一个属性,而不是引用它的某个变量的名称。

从您的示例中,它的id=results是什么?我想这不是你的具有title属性的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"); });

除非你遗漏了什么,否则这段代码没有多大意义。我想你是在向DOM中添加结果吧?如果是这种情况,除非缺少更多javascript代码,否则您没有为其分配ID。那么,当你检索带有结果ID的标识符时,你得到了什么吗

试着打印出$results的长度……你有什么收获吗

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

在单击处理程序中,它指向结果,并且标题被设置为其他一些div。您需要找到该div并从中获取title属性。如果results与您设置标题的div相同,那么该div中应该有id=results,因为您是通过id选择它的

结果是一个JavaScript变量,您是否在寻找类似的内容

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

尝试更改您的代码,以便您可以引用div-我使用的是id theDiv,但您可以使用任何东西:

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

我认为有几种方法可以了解这里发生了什么。我认为您可能需要提供更多信息。dom元素ID显然是他发布的代码的结果。格雷格:谢谢你的评论和随之而来的否决票。是的,你说得对,OP可能就是这个标题。ID是否实际是结果并不明显。这可能是因为他试图通过变量名进行选择,这当然行不通。我在回答中提到了这种可能性。-1,很明显,results选择id=results的dom对象。。。。obviously@Greg:又来了。好吧,这有多明显?HTML字符串中的ID在哪里?它不在那里。但是变量的名称是什么?结果仅仅因为OP正在执行$results并不意味着DOM中有一个ID为的元素。事实上,由于.attrtitle返回未定义的元素,这似乎表明没有具有该ID的元素。或者更合理的猜测是他忘记将其添加到DOM中。我非常怀疑有人会试图检索他已经知道的东西的ID,并且是静态的。很抱歉,尝试在JavaScript变量名上使用选择器毫无意义。这不太可能是个错误。
$("#results").click(function() { var id=$('#theDiv').attr("title"); });