1

我在生成动态元素的 a 中有以下给定JSP代码:formdiv

<div class="ans_panel<%=qcount%>">
    <textarea class="text_<%=qcount%>" id="add_answer<%=qcount%>" rows="0" cols="80"></textarea>

    <input type="hidden" id="hiddenAns" value="<%=qcount%>" />
    <br>
    <br>

    <button class="post<%=qcount%>" onclick="addAns();">Post Answer</button>&nbsp;&nbsp;&nbsp;

    <button class="cancel<%=qcount%>">Cancel</button>
</div>
4

5 回答 5

1

只需将其传递给 javascript 例程;

<button class="post<%=qcount%>" onclick="addAns('<%=qcount%>');">Post Answer</button>
...
function addAns(id) {
   var el = $("#text_" + id);
   ...
}
于 2012-07-25T09:34:52.873 回答
0

它应该很简单:

function addAns(el) {
    alert(el.id);
    document.getElementById("hiddenSubmitAns").value = "AddSubmit";
    var text = null;
    var i = 0;
    for (i = 0; i < 3; i++) {
        text = $("#add_answer" + i).val();
        if (text != "") {
            j = i;
            alert(text);
            break;
        }
    }
    text = text.replace(/(^\s*)|(\s*$)/g, "");
    if (text == "") {
        alert("Please enter the answer");
        document.getElementById("#add_answer" + i).select();
        document.getElementById("#add_answer" + i).focus();
        return false;
    }
    document.abc.submit();
    return true;
}

<div class="ans_panel<%=qcount%>">
     <textarea class="text_<%=qcount%>" id="add_answer<%=qcount%>" rows="0" cols="80"></textarea>
     <input type="hidden" id="hiddenAns" value="<%=qcount%>" />
     <br>
     <br>
     <button class="post<%=qcount%>" onclick="addAns(this);">Post Answer</button>&nbsp;&nbsp;&nbsp;
     <button class="cancel<%=qcount%>">Cancel</button>
</div>

请注意,我已经添加了一个参数addAns,然后将您更新onclick为 pass this

然后我正在提醒el.id,或者alert($(el).attr('id'));如果您使用 jQuery,您可以使用。

于 2012-07-25T09:34:40.853 回答
0

页面上是否有超过 1 个文本区域?

如果没有,那么您可以使用它访问它$("textarea")并使用它获取它的 ID$("textarea").attr("id")

于 2012-07-25T09:35:27.290 回答
0

您可以使用jQuery('[attribute^="value"]'),它选择具有指定属性的元素,其值恰好以给定字符串开头。

var theTextArea = $('textarea[id^="add_answer"]');

然后

var theId = theTextArea.attr("id");
于 2012-07-25T09:35:28.910 回答
0
var elements = document.getElementsByTagName('textarea');
for(var i = 0; i < elements.length; i++) {
    if(elements[i].class.indexOf('text') === 0) {
         return elements[i].id;
    }
}
于 2012-07-25T09:35:52.000 回答