为什么我不能使用jquery找到我的标签文本?

时间:2012-08-23 21:23:53

标签: jquery asp.net

$("[id$=HealthCareReimbursementPerPayPeriodTxt]").blur(function (evt) {
try {
    val1 = (this.value);
    alert(val1);
    val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]");
    alert(val2.value);
}
catch (e) { }
});

我通过通配符选择它们,因为它在母版页中。 val1工作正常(文本框),但val2(标签)永远不会得到我需要的东西。我还尝试过val2.text,val2.val,valueOf(val2),val2.html,val2.attr(' text')。我要么得到Object [object],undefined,要么是一些长函数字符串。

<asp:Label ID="HealthCareReimbursementNumPayPeriodsTxt" runat="server">

如果有帮助,我在codebehind

中设置此标签的文本

5 个答案:

答案 0 :(得分:0)

在您的代码中,您需要更改此

val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]");

通过

val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]")[0];

jQuery选择器不直接返回DOM对象。您还可以使用类选择器

<asp:Label ID="HealthCareReimbursementTotalLbl" Text="0.00" runat="server" 
    CssClass="healthCareReimbursementTotalLbl"></asp:Label>

然后你可以做

$(function(){
    $(".healthCareReimbursementTotalTxt").blur(function (evt) {
    try {
        val1 = (this.value);
        alert(val1);
        val2 = $(".healthCareReimbursementTotalLbl")[0];
        alert(val2.value);
    }
    catch (e) { }
    });
});

答案 1 :(得分:0)

试试这个:

val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]")[0].val();

答案 2 :(得分:0)

您说标签已变为<span></span>,但不会有val属性。我认为您需要使用.html(),因为您需要标签之间的文本。

val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]").html();

答案 3 :(得分:0)

val2.htmlval2.text应该有效。 .val仅适用于包含HiddenFields等值的输入和其他控件,而不适用于刚刚转换为HTML元素(如标签)的控件。

答案 4 :(得分:0)

试试这个

 $("[id$=HealthCareReimbursementPerPayPeriodTxt]").blur(function (evt) {
              try {
                  val1 = (this.value);
                  alert(val1);

                  // first try wether your are getting this elemnt or not 
                  alert($("[id$=HealthCareReimbursementNumPayPeriodsTxt]").length);
                  if ($("[id$=HealthCareReimbursementNumPayPeriodsTxt]").length > 0) {
                      alert("item found");
                      val2 = $("[id$=HealthCareReimbursementNumPayPeriodsTxt]");
                      alert(val2.val());
                      // if it does not work try
                     // alert(val2.html()); or alert(val2.text);
                  }
                  else {
                      alert("item not found");
                  }
              }
              catch (e) { }
          });