我有一些运行循环的PHP代码,每次循环时都会吐出一个按钮和一个跨度,如下所示:
(内循环)
echo "<span id=\"sendbutton\"> <input type=\"button\" event='$eventID' id=\"sendsomeone\" value=\"Send a family member\"/> </span>";
echo "<span id=\"nameshere\"></span>";
稍后在我的代码中,我有jquery捕获其中一个按钮点击,然后执行代码,然后回写。我想要它做的是在点击按钮后立即回写跨度。
$('#nameshere').append('Hey! this was the button that you clicked!');
显然,在我的例子中,它并不像我想要的那样工作。每个循环创建一个idhere为nameshere的span,因此当我单击任何按钮时,它会附加到最顶层的span。我可以轻松地使用$eventID
作为跨度ID,但我不知道如何在我的javascript中准确引用它。
如何将其附加到单击的按钮?也许$(this)
?我只是不知道如何正确使用它。
编辑,更多信息:
我的点击代码如下所示:
$('input:button').click(function() {...}
更多信息:
我应该更清楚地问。我可以使我的跨度ID唯一。我只是将它设置为$ eventID。完成。但是如何在jquery中调用它?
答案 0 :(得分:3)
您不能拥有重复ID的元素。将您的ID更改为课程并尝试此操作。
$("input.sendsomeone").click(
$(this).next("span").html('Hey! this was the button that you clicked!')
);
答案 1 :(得分:0)
据我所知,更好的方法是在你的“nameshere”添加任何身份证号码,并在你的按钮上存储相同的身份证,这样你就可以将它们相互链接
答案 2 :(得分:0)
嗯,你可以这样做:
(在循环内):
echo "<div>";
echo "<span id=\"sendbutton\"> <input type=\"button\" event='ClickMe(this)' id=\"sendsomeone\" value=\"Send a family member\"/> </span>";
echo "<span id=\"nameshere\"></span>";
echo "</div>";
(它可以是任何标签,但确实是div) 然后功能ClickMe:
function ClickMe(button)
{
var span = button.parentNode.parentNode.getElementsByTagName('span')[1]; // Here you got your span!!
}