Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中动态声明变量_Javascript_Variables - Fatal编程技术网

如何在javascript中动态声明变量

如何在javascript中动态声明变量,javascript,variables,Javascript,Variables,可以动态读取post变量吗? i、 e 当我查看控制台时,变量是未定义的。有正确的语法吗 编辑: HTML是动态的(PHP): 编辑javascript以匹配以下内容 function ajax_edit_color(color_id, building) { var color_name = $('#'+color_id).val(); var color_hex_code = $('#'+color_id).val(); console.log(color_name, color

可以动态读取post变量吗? i、 e

当我查看控制台时,变量是未定义的。有正确的语法吗

编辑: HTML是动态的(PHP):


编辑javascript以匹配以下内容

function ajax_edit_color(color_id, building)
{
var color_name      = $('#'+color_id).val();
var color_hex_code  = $('#'+color_id).val();
console.log(color_name, color_hex_code);
}

//color_name_uuu和color_hex_code_uu都已经是您的ID的一部分。

您的基本方法是正确的,因此我建议您从一个简化的测试开始,例如不使用PHP。我验证了一个基本示例:

<!doctype html>
<html>
<head>
    <script type="text/javascript" src="js/libs/jquery-2.1.4.js"></script>  
    <script>
        function test(){
            var index=1;
            var val=$("#color_name_"+index).val();
            console.log( '****' +val);
        };
    </script>
</head>
<body>
    <button onclick="test();return false;">test</button>
    <input type="text" id='color_name_1' value='green'>
    <input type="text" id='color_name_2' value='blue'>
</body>

功能测试(){
var指数=1;
var val=$(“#颜色#名称"+索引).val();
console.log('***'+val);
};
测试
这很有效。现在,如果您自己的代码失败,请尝试寻找差异,特别是: 1.javascript何时运行?是否在文档中呈现“color\u name”元素之前?
2.如果您的PHP生成了错误的值,那么可以通过查看文档源来测试这一点。当然,查看最终的HTML:

<label for="color_name_">Color name : </label>
<input type="text" name="color_name_6" id="color_name_"
    class="form-control" required="required" value="orange" />
颜色名称:

名字是对的,但id是错的。修复php,javascript将开始工作。id需要是
color\u name\u 6
,而不是
color\u name\u

哪个变量是
未定义的
?如果
color\u name
color\u hex\u code
则检查页面上是否有id为
color\u name
+
color\u id
的元素。这些变量不是未定义的,它们的值是。这听起来像是一个完全错误的方法,无论你在这里尝试做什么。如果您有带有编号id的元素,那么您可能更倾向于寻找类和/或直接连接的事件处理程序?请添加HTML代码当您从控制台本身查看时,您正在另一个范围中查看。这些变量仅在特定调用
ajax\u edit\u color
的上下文中定义。。。如果您希望在更高的范围内声明它们:在更高的范围内声明它们我有id为的页面元素,即设置了值的color_name_5和color_hex_code_5。我如何在我的JS中检索它们?你如何调用该函数以及你传递的值是什么?当你对PHP代码充满信心并开始责怪JS时会发生什么。。。THNX@dujmovicv很容易做到——这就是为什么我在要求最终的html时非常小心,而不仅仅是php;p我们都处于这种状态(可能不是使用php或jquery,或者其他什么——但是问题的主题与我们关注的主题相去甚远)
function ajax_edit_color(color_id, building)
{
var color_name      = $('#'+color_id).val();
var color_hex_code  = $('#'+color_id).val();
console.log(color_name, color_hex_code);
}
<!doctype html>
<html>
<head>
    <script type="text/javascript" src="js/libs/jquery-2.1.4.js"></script>  
    <script>
        function test(){
            var index=1;
            var val=$("#color_name_"+index).val();
            console.log( '****' +val);
        };
    </script>
</head>
<body>
    <button onclick="test();return false;">test</button>
    <input type="text" id='color_name_1' value='green'>
    <input type="text" id='color_name_2' value='blue'>
</body>
<label for="color_name_">Color name : </label>
<input type="text" name="color_name_6" id="color_name_"
    class="form-control" required="required" value="orange" />