$(jQuery)symbol = null,但“jQuery(...)”有效

时间:2013-07-11 18:43:02

标签: jquery datatable null selector

我最近遇到了jQuery问题。

例如,我想选择一个文本输入并更改其值:

var myInput = jQuery('#myInput');
myInput[0].value = "something"; // this works* but text remins grey, and clears as soon as the input gets focus
myInput[0].val("something"); // I believe this is what I should use, however it pops an error :error ²
myVar = $("#something"); // Returns Null (actually, even if I see the function in the debugger that's supposed to return the elements)

*选择器实际上是这样的:“#aDiv #anOther #anOther #aTable [aDynamicID] tFoot tr [name = [aDymanicName]]”

它有效,但它很复杂,所以我只写了#something;)

错误²:未捕获的TypeError:对象#没有方法'val'

任何人都能理解jQuery足以看到发生了什么? :(

我正在尝试以编程方式将过滤器插入到DataTable中,这是我的<head>

<head>
    <link rel="stylesheet" type="text/css" href="parminou_style.css" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="jscript/jquery-1.10.2.min.js"></script> 
    <script type="text/javascript" src="jscript/jquery-migrate-1.2.1.min.js"></script> 
    <script type="text/javascript" src="jscript/prototype.js" ></script>
    <script type="text/javascript" src="jscript/scriptaculous.js" ></script>
    <script src="jscript/tiny_mce/tiny_mce.js" type="text/javascript"></script>

    <script type="text/javascript" src="parminou_js.js" ></script>

    <link href="css/style.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="jscript/jquery.dataTables.js"></script>
    <script type="text/javascript" src="jscript/jeditable.js"></script>
    <script type="text/javascript" src="jscript/jquery-ui-1.8.22.custom.min.js">    </script> 
    <script type="text/javascript" src="jscript/jquery.ui.datepicker.js"></script> 

    <!-- src="jquery-1.10.1.min.js" -->
    <link href="css/jquery-ui-1.8.22.custom.css" rel="stylesheet" type="text/css" /> 
    <link href="css/jquery.dataTabl
sry,它看起来像一团糟。 :/

3 个答案:

答案 0 :(得分:1)

当然myVar = $("something"); 将返回null。你有一个名为&lt; something&gt;?

的元素

你忘了#,表示一个ID。 使用 。表示课程。 使用不带上述字符的选项来选择标签名称。

我刚看到你的编辑(这使得这个答案不再适用)。通过发布一些相关的HTML来帮助我们。还要确保$已正确定义,并且不受您拥有的其他脚本的影响 - 他们的文档可能会告诉您。

答案 1 :(得分:1)

在数据表中插入过滤器的示例

var oTable = $('#example')。dataTable();   oTable.fnFilter('test string');

有关如何在数据表中添加过滤器的更多详细信息,请参见以下位置 https://datatables.net/api

也可以使用CSS选择器使用jquery选择合适的元素 例如,可以选择,

jQuery(“。test”)或jQuery(“#input1”)

如果所选组件是文本输入,val()肯定会在那个

上工作

答案 2 :(得分:0)

myInput不是数组,它是一个类似数组的对象。在其上使用[0]返回jQuery集合中的第一个dom节点。这就是.value有效而.val无效的原因。在jQuery集合中,DOM节点没有.val方法。

var myInput = jQuery('#myInput');
myInput[0].value = "something"; // this works* but text remains grey, and clears as soon as the input gets focus
myInput.val("something"); // this works* but text remains grey, and clears as soon as the input gets focus
myVar = $("#something"); // is prototype

至于它仍然是灰色的,你还没有做任何会使它不是灰色的东西。只要它变得集中,它就会发生变化,而其他东西正在这样做,而不是这个代码。