我最近遇到了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,它看起来像一团糟。 :/
答案 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
至于它仍然是灰色的,你还没有做任何会使它不是灰色的东西。只要它变得集中,它就会发生变化,而其他东西正在这样做,而不是这个代码。