我希望按其值找到一个html元素。我试着用id,但我的情况很脆弱:
伪代码:
for user in users:
<li id="followed" onclick="follow($(this).text())"><a class="follow">user.name</a></li>
endfor
我希望每个用户名都是可点击的,我将他保存到数据库中并将“已保存”添加到用户名的末尾部分。像这样:
"username" ==> after click: "username saved"
我是通过ajax做到的。
function follow(data){
var Him = data;
alert(Him);
$.ajax({
url: "/follow",
type: "POST",
datatype: "html",
data: {Him: Him}
}).success(function(response){
$('#followed').append(response);
});
}
此代码很好,但它只将“已保存”响应附加到第一个用户名,因为在循环结束时,所有用户名都有id='followed'
。
这就是为什么,我想通过它的值找到html元素。例如“用户名”。
可能吗?
答案 0 :(得分:4)
您可以使用context
参数更改传递给AJAX请求成功回调的上下文。
但首先让我们开始清理你的标记并使用类名而不是id,如果这是一个循环,因为你知道ids在HTML中必须是唯一的:
for user in users:
<li class="followed"><a class="follow">user.name</a></li>
endfor
好了,现在我们已经清理了标记,让我们不加引用地订阅这个.click()
的{{1}}事件:
<li>