按名称属性访问元素的句点值

时间:2015-09-30 21:42:07

标签: jquery

如何通过变量获取包含句点的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等其他属性 - 它必须是名称

1 个答案:

答案 0 :(得分:2)

你可以这样做:

 $(".greet").click(function() {
        var str = $(this).attr("data-get-value");

    var input = $("[name='" + str + "']").val();
        alert(input);
    });

只需用单引号转义点,无需替换......

http://jsfiddle.net/1pez2cyb/