Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 未捕获的SyntaxError:一个元素有效,但另一个元素无效或意外标记_Javascript_Jquery - Fatal编程技术网

Javascript 未捕获的SyntaxError:一个元素有效,但另一个元素无效或意外标记

Javascript 未捕获的SyntaxError:一个元素有效,但另一个元素无效或意外标记,javascript,jquery,Javascript,Jquery,当我运行这段代码时,它工作得很好,但是如果我添加另一个选择框,它就不工作了——实际上,“选择项目团队成员角色”根本不工作,但“选择项目团队成员”工作得很好 当我为“选择项目团队成员角色”运行代码时,会出现错误“未捕获的SyntaxError:无效或意外标记” 我需要两个选择框,当我运行这两个选择框时,none都不起作用。我找不到错误是什么;请帮帮我 HTML JavaScript <script> $(document).ready(function(){ var i

当我运行这段代码时,它工作得很好,但是如果我添加另一个选择框,它就不工作了——实际上,“选择项目团队成员角色”根本不工作,但“选择项目团队成员”工作得很好

当我为“选择项目团队成员角色”运行代码时,会出现错误“未捕获的SyntaxError:无效或意外标记”

我需要两个选择框,当我运行这两个选择框时,none都不起作用。我找不到错误是什么;请帮帮我

HTML

JavaScript

<script>
  $(document).ready(function(){  
    var i=1;  
    $('#add').click(function(){  
      i++;  
      $('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="name[]" placeholder="Enter your Name" class="form-control name_list" /></td><td><select name="projteam[]" id="projmem_id" class="form-control"><option> Select Project Team Member</option> <?php foreach($this->memdata as $pc){ ?> <option value="<?php echo $pc->id ?>"><?php echo $pc->name ?></option> <?php } ?> </select></td><td><select name="keyrole[]" id="role_id" class="form-control"><option> Select Project Team Member Role</option> <?php foreach($this->roldata as $mr){ ?> <option value="<?php echo $mr->id ?>"><?php echo $mr->key_role ?></option> <?php } ?> </select></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');  
    });
    $(document).on('click', '.btn_remove', function(){  
      var button_id = $(this).attr("id");   
      $('#row'+button_id+'').remove();  
    });  
  }); 
</script>

您编写的html看起来很好,但JavaScript不好。因为click事件中的PHP片段将在事件发生之前返回html。这可能是一个很好的建议,让您的选择随时准备和隐藏。添加style='display:none'。
在addclick事件中,只需向他们显示$'projmem_id'。show。这样可以保持清晰的区别。

您可以使用ajax请求加载选项标记的内容,就像Srikant Sahu所说的,php内容在事件发生之前返回。。下面是一个Ajax请求的示例:

$(document).ready(function () {   
$('#yourid').click(function (event) {
   $.ajax({
            type: 'POST',
            url: 'yourfile.php',
            data: '',
            dataType:'json',
            success: function(data) {   
                //create the new select
            }
        });      
     });
});

错误何时发生?页面何时加载?当您单击“添加”按钮时?当您单击.btn_删除按钮时?或如果您在控制台中单击错误消息的行号,该行号应准确显示错误发生在哪一行。当页面加载时,它在控制台中显示错误,并且“添加”按钮不起作用。谢谢JS语法似乎正常,所以我猜问题是您的嵌入式PHP正在输出创建无效JS的内容,导致令牌错误。请使用浏览器的“查看页面源”选项获取发送到浏览器的实际JS,并将其添加到您的问题中。您需要根据需要使用.clone功能,然后在附加克隆副本之前将“删除”按钮附加到克隆内容。
$(document).ready(function () {   
$('#yourid').click(function (event) {
   $.ajax({
            type: 'POST',
            url: 'yourfile.php',
            data: '',
            dataType:'json',
            success: function(data) {   
                //create the new select
            }
        });      
     });
});