我有一个单选按钮列表,点击单选按钮项目,我必须改变其标签的文本。但不知什么原因,它不管用。代码如下:

<asp:Label ID="lblVessel" Text="Vessel:" runat="server"></asp:Label>

<script language="javascript">
  $(document).ready(function() {

    $('#rblDiv input').click(function() {
      var selected = $("#rblDiv input:radio:checked").val();
      if (selected == "exportpack") {
        $('#lblVessel').text("NewText");
      }
    });
  });
</script>

当前回答

试试这个:

$('[id$=lblVessel]').text("NewText");

id$=将匹配以该文本结尾的元素,这就是ASP。NET自动生成id。您可以使用span[id=$=lblVessel]使其更安全,但通常这是不必要的。

其他回答

$('#<%= lblVessel.ClientID %>').html('New Text');

ASP.net Label将在浏览器中呈现为一个span。用户'html'。

在JS中试试这个:

单击标签文本将其切换为另一个文本,同时选择相关的输入字段并将焦点放在相同的相关输入字段上。

<script type="text/javascript">"use strict";
  const oldLabelText="ORIGINAL BUTTON TAG TEXT";
  document.write(
    '<label id=labId for=inputId onClick="changeText(this.id)">'+oldLabelText+'</label>:<br>'+
    '<input id="inputId" value="The input value" />'
  );
</script>

<script type="text/javascript">"use strict";
  const stat=[oldLabelText,"NEW LABEL TEXT","THIRD LABEL TEXT","FOURTH LABEL TEXT"];
  let   cptr=0;

  function changeText(button_id){
     var el = document.getElementById(button_id);

     el.textContent = stat[++cptr % (stat.length)];

  // or
  //       el.firstChild.data = stat[++cptr % (stat.length)];

  // or
  //        el.innerHTML = stat[++cptr % (stat.length)];

  // or simply
  //        el.innerHTML = "the new text";
  }
</script>

试试这个:

$('[id$=lblVessel]').text("NewText");

id$=将匹配以该文本结尾的元素,这就是ASP。NET自动生成id。您可以使用span[id=$=lblVessel]使其更安全,但通常这是不必要的。

ASP。Net自动为服务器端控件生成唯一的客户端id。

改为

 $('#<%= lblVessel.ClientID %>')

在ASP。Net 4.0,你也可以将ClientIDMode属性设置为Static。

我也有同样的问题,因为我在吸毒

$("#LabelID").val("some value");

我了解到,你可以使用临时的jquery方法先清除它,然后追加:

$("#LabelID").empty();
$("#LabelID").append("some Text");

或者按照惯例,你可以用:

$("#LabelID").text("some value");

OR

$("#LabelID").html("some value");