【问题标题】:JQuery can't find my Element. Why?JQuery 找不到我的元素。为什么?
【发布时间】:2012-04-05 08:58:32
【问题描述】:

更新:愚蠢的我没有注意到 CASE 并不准确。我为此苦苦挣扎了 30 多分钟,你们在不到 5 分钟内就看到了我的问题!!感谢您为我节省了很多痛苦 - 无论如何,我对编程有点陌生,我需要学习如何注意这样的小事情,但是非常感谢,我什至没有想到它:)

对不起大家 - 因为我忘了在我的问题中加上引号,所以之前有误导性,但我可以向你保证,我知道 Jquery 的选择器需要引号并且我一直在使用它们......

<div id='question' style="background-color:#DAE2E8;border-color:#A2B3C7;border-width:1px;border-style:solid"><br /> 
    <table id='searchtable' border='0'>
        <tr>
            <td><span class="label">Question ID:</span><input id='QuestionId' type='text'/></td>
            <td><span class="label">Question Title:</span><input id='QuestionTitle' type='text'/></td>
            <td><span class="label">Original URL:</span><input id='OriginalURL' type='text'/></td>
            <td><span class="label">Original Title:</span><input id='OriginalTitle' type='text' /></td>
            <td><span class="label">Chronic ID:</span><input id='ChronicID' type='text' /></td>   
        </tr><tr>
            <td><span class="label">Expert Name:</span><input id='ExpertName' type='text'/></td>  
            <td><span class="label">Topic ID:</span><input id='TopicID' type='text'/></td>
            <td><span class="label">Channel ID:</span><input id='ChennelID' type='text''/></td>
            <td><span class="label">Funded: </span><input id='IsFunded' type='text'/></td>
            <td><span class="label">Funded Partner:</span><input id='FundedPartner' type='text'/></td>
        </tr><tr>
            <td><input type="submit" value="Submit" onclick='ApplyNewFilters(this)' /></td>
        </tr>  
    </table>
</div>

所以这是我的 HTML 代码(它在一个 aspx 页面中) - 我尝试使用 $("#QuestionID").val() 来获取值,但它不起作用。我也试过$("input#QuestionID").val()

【问题讨论】:

  • 你能控制台记录错误吗?如果您尝试console.log($("#QuestionID"));,则应该返回一些东西
  • 不确定如何记录错误。现在它只是告诉我它是未定义的。
  • @gdoron 我对 JQuery 真的很陌生。我来自 CSharp 背景,所以 Javascript 仍然是一个完全不同的领域。你有关于如何访问/查看 DOM 以及如何使用 Jquery 进行调试的任何好的资源
  • 你有任何其他带有 QuestionId 的元素。在你的整个代码中也检查一下
  • 如果console.log($("#QuestionID")); = undefined,则错误是您的javascript在$("#QuestionID")可用之前运行。换句话说,也许当你调用javascript调用它运行时,那个输入框不在屏幕上?

标签: javascript jquery html input jquery-selectors


【解决方案1】:

尝试使用:

$("#QuestionId").val()

注意引号和大小写。

Example here

【讨论】:

  • 对不起,我刚刚编辑了我的帖子,因为我忘了把引号放在那里。不,这绝对不是问题。我一直在使用引号>
  • @user1274649 注意大小写 QuestionIDQuestionId - D
  • 谢谢,就是这样。我永远不会再犯那个错误了!!我是一个 Jquery 新手,所以我不确定是不是我,或者我使用了错误的东西,或者它是否与 html 有关......谢谢......很多。
  • 如有疑问,请复制并粘贴变量名称。即使看起来不错,但盯着屏幕太久也很容易出错。
【解决方案2】:

<td><span class="label">Channel ID:</span><input id='ChennelID' type='text''/></td>

还有这个

<td><span class="label">Channel ID:</span><input id='ChennelID' type='text' /></td>

最后还有额外的 '

如果你正在使用

<asp:TextBox /> 

您必须使用 asp 客户端 ID 的值在 javascript 上创建一个 var

var ChannelID = <%=txtChannelID.ClientID %>

其中 clientid 是文本框名称

【讨论】:

  • 有用的信息 - 感谢您注意到其他报价,它会为我节省很多悲伤
【解决方案3】:

尝试更正该行的双引号

<input id='ChennelID' type='text''/>

【讨论】:

    【解决方案4】:

    选择器区分大小写,因此您拼错了“Id”

    $("#QuestionId").val()
    

    应该可以。

    【讨论】:

      【解决方案5】:

      您的选择器上缺少引号。应该是$('#QuestionId').val()$('input#QuestionId').val()

      【讨论】:

        【解决方案6】:

        输入的 id 是 QuestionId 而不是 QuestionID

        【讨论】:

          【解决方案7】:

          您确定您使用的大小写正确吗?

          $("#QuestionId").val() 应该可以工作

          如果它不起作用,请检查您的 firebug 控制台选项卡,看看页面中是否存在一些脚本错误

          【讨论】:

          • 这不是报价,而是案例!哇,我和这该死的东西至少挣扎了 30 分钟。现在我知道我再也不会做出这样的疏忽了。非常感谢您的关注:)
          猜你喜欢
          • 1970-01-01
          • 2015-08-08
          • 2020-10-03
          • 2015-01-28
          • 1970-01-01
          • 1970-01-01
          • 2020-12-31
          相关资源
          最近更新 更多