如何通过变量获取包含句点的name属性的值:
我有以下示例:
<input type="text" value="Hello!" name="input.hi" />
<input type="text" value="Goodbye" name="input.bye" />
<input type="button" data-get-value="input.hi" value="Arrive" class="greet" />
<input type="button" data-get-value="input.bye" value="Leave" class="greet" />
<script>
$(".greet").click(function() {
var str = $(this).attr("data-get-value").replace(/\./g, '\\\\.');
var input = $("[name=" + str + "]").val();
alert(input);
});
</script>
我得到的错误是:
Uncaught Error: Syntax error, unrecognized expression: [name=input\\.hi]
但如果我通过我的控制台运行命令如下:
$("[name=input\\.hi]").val();
或
$("[name=input\\.bye]").val();
返回正确的值。
我在这个板上搜索了如何逃避这段时间以及如何访问它,但我无法完成最后一步。
注意:我不能使用ID等其他属性 - 它必须是名称
答案 0 :(得分:2)
你可以这样做:
$(".greet").click(function() {
var str = $(this).attr("data-get-value");
var input = $("[name='" + str + "']").val();
alert(input);
});
只需用单引号转义点,无需替换......