Jquery选择器-text等于-不起作用
Jquery selector - text equals - not working
HTML
<select id="myDDL">
<option selected="selected" value="0">default</option>
<option value="1">apples</option>
<option value="2">oranges</option>
</select>
Javascript
setFieldValue("myDDL", "apples");
function setFieldValue(field, value)
{
var val = $("#" + field + " option[text]");
console.log(val);
$("#" + field).val(val);
}
JSFiddle
https://jsfiddle.net/nnvh7e43/
我想根据文本在选择字段中选择一个选项,即:
var val = $("#" + field + " option[text='" + value + "']");
然而,当我在选项后添加[text]时,选择器似乎选择了整个文档,而$("#"+field+"option"(;正如我所期望的那样,只需选择select字段中的所有选项标记。
你能解释一下为什么它不识别"[文本]",以及我如何纠正这一点吗?
感谢
apples
是选项的文本,而不是其值。您需要在此处使用.filter()
函数:
$("#" + field + " option").filter(function(){
return $(this).text() === value ;
});
此外,您正试图通过文本获取选项值,然后设置其要选择的值。您可以将选项的选定属性设置为true,以将其设置为选定属性:
$("#" + field + " option").filter(function(){
return $(this).text() === value ;
}).prop('selected', true);
工作演示
[]
css选择器只能用于属性(href
、selected
、value
、class
、id
…(。不能用于html元素的内容。
Milind Anantwar解决方案是可行的。使用filter
:
$("#" + field + " option").filter(function(){
return $(this).text() === value ;
});
您可以这样做:
function setFieldValue(field, value) {
// First filter all option by text, then get that option value
var val = $("#" + field + " option").filter(function () {
return $.trim($(this).text()) == value;
}).val();
console.log(val);
// Set the option w/ text value here
$("#" + field).val(val);
}
FIDDLE演示
像tagname[attributename]
这样的选择器在tagname
元素上查找实际属性。您的option
元素没有text
属性。因此,您需要给它们一个text
属性,或者,可能更可取的是,修改选择器以检查元素的实际内部文本,而不是查找属性,例如,使用contains
:
var val = $("#" + field + " option:contains(" + value + ")");
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Javascript变量等于下面的另一个变量不起作用
- 小于或等于条件在我的脚本中不起作用
- javascript逻辑运算符don'当page等于X时,t不起作用
- Jquery选择器-text等于-不起作用
- ScrollTop等于一个不起作用的值