var ul = $(".display-movie");
for (var i = 0 ; i < response.movies.length; i++) {
var img = $("<img>").attr("src", response.movies[i].posters.thumbnail)
.css("width", "200px")
.css("height", "200px")
.css("margin", "20px")
.click(click_pressed);
var text = response.movies[i].title;
var row = $("<li> <div>");
var endrow = $("</div> </li>");
ul.append(row , img , text , endrow);
在上面的代码中,点击功能运行良好,并显示和提醒。但我想要的是,当点击时,警报应显示被点击的对象的ID,以便稍后我可以使用其ID检索此对象的详细信息。
function click_pressed() {
alert($(this.title));
}
答案 0 :(得分:3)
要显示id,您只需从this
指针引用该属性,该指针将指向导致该事件的DOM对象。
function click_pressed() {
alert(this.id);
}
您的问题是“id”,但您的代码看起来像是您想要的标题。在这种情况下,您将使用:
function click_pressed() {
alert(this.title);
}
您不需要在事件处理程序中使用jQuery来访问DOM对象的属性。如果你想在click项上使用其他jQuery方法,你可以使用$(this)
为点击项创建一个jQuery对象,然后你可以做其他事情,比如$(this).find("xxx")
或其他任何jQuery方法你需要。但是,要只访问DOM对象的常规属性,不需要jQuery。
答案 1 :(得分:0)
this
指的是事件所针对的dom元素,请尝试
function click_pressed() {
alert(this.id);//alerts id
var $this = $(this);
//then use $this to access other jQuery methods
}
您不需要单击元素的id来访问其他属性,因为您可以使用dom元素引用来获取相应的jQuery对象
答案 2 :(得分:0)
您可以更好地使用onclick函数,并可以像这样发送当前元素的属性值
<img id="abc" onclick="yourfunction(this.id)">
因此,此函数会将id值作为“abc”发送到您的函数。
你的进一步JS功能将是这样的
function yourfunction(id)
{
}
答案 3 :(得分:0)
我不知道您是否需要此功能(JSFIDDLE也不错),因为您将.on('click'...)
作为.click()
的长版本附加到<img/>
,但如果您需要在更复杂的结构中单击的实际元素,则可以使用
click_pressed = function(e) { console.log($(e.target)) }
$('div').click(function(e){
click_pressed.call(this, e)
console.log($(this))
})
call()方法使用给定的值和单独提供的参数调用函数。 MDN
其他一切都说了,你必须用其他人提供的方法检索title
! :)