我有
var results="<div title='"+id+"'><img src='"+thumb+"'></div>";
我将此呈现给页面,然后尝试检索id变量。要做到这一点,我有:
$("#results").click(function() {
var id=$(this).attr("title"); });
现在,id正在返回undefined。我想我首先没有正确设置属性。我该怎么做呢?如果我需要提供更多细节,请告诉我。
答案 0 :(得分:1)
要获取ID,您需要检索"id"
而不是"title"
:
var id=$(this).attr("id");
...虽然你真的不需要jQuery方法:
var id = this.id;
或者,如果您尝试按变量名称“结果”选择元素,则无法执行此操作。它必须是元素本身的属性,而不是对它的某些变量引用的名称。
答案 1 :(得分:1)
在点击处理程序this
中指向#results
,title
正在设置为其他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"); });