当我使用javascript从锚标签点击时,如何获取动态创建标签的文本

时间:2012-10-05 07:23:46

标签: javascript jquery html jsp

在我的JSP页面中,我想动态创建一个标签,该标签位于achor标签内。当我克隆另一个锚标签时,我希望使用javascript或jquery获得相应的标签文本。

这是我的JSP页面代码。

<body>
    <%
        for (int i = 0; i < sam.groupName.length; i++) {

            out.print("<a href='#'>");
            out.print("<img src='twoMen.jpg'/>");
            out.print("<label for='groupsId' id='labelId"+i+"'>"+ sam.groupName[i] + "</label>");
            out.print("</a>");

            out.print("<a href='javascript:void(0);' onclick='validation(this,"+i+");'>Edit</a>");

        }
    %>
</body>

Javascript代码:

function validation(anchor,i) {
        alert("Label value="+????);
    }

3 个答案:

答案 0 :(得分:1)

快速回答:

function validation(anchor,i) {
    var value = $("#labelId"+i).text();
    alert("Label value= "+ value);
}

只需使用您拥有的标签的ID,然后从中获取文字。

.text()将返回标签中的TEXT。如果该文本包含在另一个嵌套标记中,则不会。如果是这种情况,请使用.html()或指定您的jQuery选择器。

<强>更新

我还想到了另一个解决方案,我认为这个更简单:

<body>
<%
    for (int i = 0; i < sam.groupName.length; i++) {

        out.print("<a href='#'>");
        out.print("<img src='twoMen.jpg'/>");
        out.print("<label for='groupsId' id='labelId"+i+"'>"+ sam.groupName[i] + "</label>");
        out.print("</a>");

        out.print("<a href='javascript:void(0);' onclick='validation(this,'"+sam.groupName[i]+"');'>Edit</a>");

    }
    %>
</body>

然后您可以使用验证函数,如下所示:

function validation(anchor,value) {
    alert("Label value="+ value);
}

这样做会相同,但它会传递您需要的值,而不是指向您需要的值的索引。这是有效的,除非您以后需要i索引。

答案 1 :(得分:0)

给一些类锚定说class1,并使用jquery的live方法,

$(".class1").live("click",function(){
alert(this.html())
});

答案 2 :(得分:0)

在这些情况下,最好的方法是查看最终代码的呈现方式。 但是,您可以从ID中获取它:

var myLabelId = 'labelId'+i;
var myLabel =   document.getElementById(myLabelId);
var myLabelValue = myLabel.innerText;