我现在正在寻找一段时间没有结果所以我决定问你们。 :)
我有一些Bootstrap输入,如:
<input class='form-control' id='start_name' />
<input class='form-control' id='end_name' />
Normaly我会选择像
这样的数据var myValue = $('#start_name').val();
我遇到的问题是,我想选择一个包含指定字符串的元素,该字符串在之前设置为:
$('#start_name').val('foobar');
显然.val()
没有设置输入字段的值。我必须额外添加一行像
$('#start_name').attr('value', 'foobar');
或像
一样组合$('#start_name').val('foobar').attr('value', 'foobar');
我想用来选择相关元素并将其清空的实际代码是:
$("input[value='" + theSpecifiedValue + "']").val('');
(从包含字符串的X输入中选择输入)
但是由于我使用bootstrap,我必须明确地设置.attr()
是否有一些我缺失或这是唯一的方法吗?
答案 0 :(得分:2)
如果您使用$('#start_name').val('here')
和
$('#start_name').prop('value','here')
正在分配值
THIS.VALUE
$('#start_name').val(); // here
并使用值
进行搜索$('body input').filter(function() { return this.value == 'here' }).val('gone');
$('#start_name').attr('value', 'here1');
正在设置值
this.attributes
$('#start_name').attr('value'); // here1
并使用值
进行搜索$("body").find( "input[value='here1']" )
答案 1 :(得分:1)
有点迂回的方式,但我们可以做到
$($.grep($("body").find("input"),function(e,i){ return e.value === myValue })).val('gone');
jQuery选择器使用文字HTML进行选择。使用.val()
设置值可设置html对象的属性“value”。它没有设置更改HTML中的文字文本,这是jQuery与其选择器一起使用的内容。因此,我们获取所有输入并返回属性“value”与搜索字符串匹配的项目列表。您可以使用for循环,映射等,而不是使用grep,并可能使查找更快。
答案 2 :(得分:-1)
尝试
$(function () {
$("body").find("input[value='" + theSpecifiedValue + "']").val('');
});