【问题标题】:Select an element by ID that contains number between square brackets [duplicate]按ID选择一个包含方括号之间数字的元素[重复]
【发布时间】:2016-04-18 23:17:42
【问题描述】:

我需要为所有具有像 re_widget[num][widget_id] 这样的 id 的输入设置值。现在我有这样的东西:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var result = /^\d{1,2}$/;
$('input[id="re_widget[+result+][widget_id]"]').val("my_value");
});
});
</script>
</head>
<body>
<p>Name: <input id="re_widget[1][widget_id]" type="text" name="user1"></p>
<p>Name: <input id="re_widget[2][widget_id]" type="text" name="user2"></p>
<p>Name: <input id="re_widget[3][widget_id]" type="text" name="user3"></p>
<button>Set the value of the input field</button>
</body>
</html>

【问题讨论】:

  • 试试这个:$('input[id="re_widget[' +result+ '][widget_id]"]').val("my_value");
  • 该正则表达式未用于任何值。按钮应该如何与输入相关联?没有显示当前的关系

标签: jquery regex input


【解决方案1】:

特殊字符

[是jquery中的一个特殊字符,要将其用作查询的一部分,需要在前面加上\

以下代码将更改输入元素的值:

function setValue(id, value) {
  $('#re_widget\\[' + id + '\\]\\[widget_id\\]').val(value);
}

$(document).ready(function() {
  $("button").click(function() {
    setValue(1, 'hello');
    setValue(2, 'world');
    setValue(3, 'leon');
  });
});

Online Demo

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 2019-08-15
    • 2015-02-26
    • 1970-01-01
    • 2013-03-15
    相关资源
    最近更新 更多