gpt4 book ai didi

c# - 使用 Ajax 更改包含链接的标签内部文本

转载 作者:行者123 更新时间:2023-11-28 13:43:11 25 4
gpt4 key购买 nike

我有一个标签,其中包含如下链接:

<label id="textlabel" > <a href="#"  id="testlink">data</a> </label>

我尝试使用 Ajax 更改标签文本,但不起作用。

出于测试目的,它可以工作 here但它在我的网页上不起作用(该网页是全新的,没有任何其他内容)。

$('#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);
}
})
});
}

更新:

  1. 以下 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);
    }
    }); });
    }

  2. 我花了很多时间来查明问题,现在我认为问题是在自动生成的元素中找到的。例如

    <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);
}
}); });

更新:

终于找到问题所在了。这是我使用的标签 ID。更改为“_”后,它们都有“+”,我的应用程序现在工作正常。

感谢所有提供帮助的人

最佳答案

问题代码更改后更新

出现问题

success: function (result) {
$("'#"+label.id+"'").text(result)
}

应该是

success: function (result) {
$("#"+label.id).text(result)
}

此外,要测试标签对象是否存在,您可以添加

success: function (result) {
console.log(label); // DON'T FORGET TO REMOVE THIS LINE LATER BEFORE DEPLOYING
$("#"+label.id).text(result)
}
<小时/>

也许是因为在您的测试函数中,您拼写错误标签的 id textlabelteSTLabel

$('#testlink').click(function(){
$('#testlabel').text("new data");
});

然后在你的真实代码中:

success: function (result) {
$('#label.id).text(result);
}

#label.id

  1. 不是正确的 jQuery 选择器。它应该是'#textlabel'
  2. 缺少结束符'

关于c# - 使用 Ajax 更改包含链接的标签内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16371113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com