jQuery更改输入文本值


155

我找不到适合的选择器:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

我想将值更改为=000000。我需要选择器来查找“名称”而不是文本输入的ID。

这不行吗?:

$("text.sitebg").val("000000");

提出的解决方案不起作用,这是什么问题?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

JSON数据运行正常;想法是稍后将JSON值传递到表单输入文本值中。但是不起作用:(

Answers:


307

不,您需要执行以下操作:

$('input.sitebg').val('000000');

但是如果可以的话,您实际上应该使用唯一的ID。

您还可以获取更多具体信息,例如:

$('input[type=text].sitebg').val('000000');

编辑:

执行此操作以根据name属性找到您的输入:

$('input[name=sitebg]').val('000000');

我会接受这个遮篷,您能推荐一本关于jquery的好书/教程(最好是一本书),在其中我可以真正了解选择器吗?特别是形式选择器?
Joricam 2011年

7
这是目前为止互联网上最好的东西:futurecolors.ru/jquery
Jason

@Jason链接已断开,这本书的标题是什么?
oyalhi '16

@oyalhi哦,不!对不起。那条评论有5年的历史了,所以我想他们把它记下来了:(
杰森

@Jason是的,很不幸。但是,您还记得这本书的标题吗?
oyalhi '16


26

最佳做法是直接使用标识:

$('#id').val('xxx');


简单和最好的一个:)
MRRaja

2
为什么这样做有效,但document.getElementById("#id").value = 'xxx';对我却不起作用?它不会更改显示的文本值,只会更改DOM元素的value属性。
user3494047 '17

1
您已经使用ById方法,#用于CSS表示法。去掉它。
朱Chu

9

设置element的新值时,您需要更改呼叫触发器。

$('element').val(newValue).trigger('change');


这为我解决了一个问题,即更改事件处理程序被调用了两次。一次使用新值,然后再次使用[attr = val]
Peter Lenjo

3

仅添加到杰森的答案,.选择器仅用于类。如果要选择除元素,id或类之外的其他内容,则需要将其包装在方括号中。

例如

$('element[attr=val]')

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.