动态创建跨度ID以供稍后在jquery中使用

时间:2011-09-02 14:46:29

标签: php jquery

我有一些运行循环的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中调用它?

3 个答案:

答案 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!!
}