我有一个标签,其中包含如下链接:
<label id="textlabel" > <a href="#" id="testlink">data</a> </label>
我正在尝试使用 Ajax 更改标签文本,但它不起作用。
出于测试目的,它可以在这里工作,但不能在我的网页上工作(该网页是全新的,没有其他任何东西)。
$('#testlink').click(function(){
$('#testlabel').text("new data");
});
JavaScript:
function myfunc(clicked_id) {
var label = document.getElementById(clicked_id).parentElement;
var params = "{'orderid':'" + clicked_id + "'}";
var fd = new FormData();
fd.append("orderid", params);
alert("test");
$("'#" + clicked_id + "'").click(function () {
$.ajax
({
url: 'Handler.ashx',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function (result) {
$("'#"+label.id+"'").text(result);
}
})
});
}
更新:
以下 ajax 一般工作
<script type="text/javascript"> function myfunc(clicked_id) { var params = "{'orderid':'" + clicked_id + "'}"; var label = document.getElementById(clicked_id).parentElement; $("#"+label.id).click(function () { $.ajax({ type: "POST", url: "Handler.ashx", data: clicked_id, success: function (result) { $("#" + label.id).text(result); } }); }); }
我花了很多时间来查明问题,现在我认为问题是在自动生成的元素中发现的。例如
<table> <tr><td><label id="lbl" style="background-color:yellow"> <a href="#" onclick="myfunc(this.id)" id="00000">Label</a> </label></td></tr> @for(int i=0;i<4;i++) { <tr><td> <label id="lbl+@i" style="background-color:yellow"> <a href="#" onclick="myfunc(this.id)" id="@i">Label</a> </label></td></tr> } </table>
ajax 仅更改第一个标签的文本,但不会更改其他自动生成的链接和标签。单击自动生成的链接时,以下部分不会运行
$("#"+label.id).click(function () {
$.ajax({
type: "POST",
url: "Handler.ashx",
data: clicked_id,
success: function (result) {
$("#" + label.id).text(result);
}
}); });
更新:</p>
最后我发现出了什么问题。这是我使用的标签 ID。更改为“_”后,它们都有“+”,我的应用程序现在可以正常工作了。
感谢所有帮助过的人