我试图将一些数字附加到我试图在页面上动态添加的元素的类名。我将追加的数字是通过获取页面上现有目标元素的编号,并通过jquery函数长度得到它。
这是我的代码:
$("#add_ingr").click(function(){
var id = $('.save').length + 1;
var row = '<tr>'
+'<td>'
+'<?php $data = array('name' => 'ingr_name[]', 'class' => 'ingr_name'); echo form_input($data); ?>'
+'</td>'
+'<td>'
+'<?php $data = array('name' => 'ingr_amount[]', 'class' => 'amt'); echo form_input($data); ?>'
+'</td>'
+'<td>'
+'<?php $data = array('name' => 'ingr_unit[]', 'class' => 'unit'); echo form_input($data); ?>'
+'<span class="remove">X</span>'
+'<span class="save" id="' +count +'">Save</span>'
+'</td>';
+'</tr>';
$("#ingr_table > tbody").append(row);
});
我遇到了麻烦,因为var id是javascript,我想将它附加到php数组值中,但是我没有成功运行代码,因为当我做这样的事情时会产生错误:
$("#add_ingr").click(function(){
var id = $('.save').length + 1;
var row = '<tr>'
+'<td>'
+'<?php $data = array('name' => 'ingr_name[]', 'class' => 'ingr_name_' +id); echo form_input($data); ?>'
+'</td>'
+'<td>'
+'<?php $data = array('name' => 'ingr_amount[]', 'class' => 'amt_') +id; echo form_input($data); ?>'
+'</td>'
+'<td>'
+'<?php $data = array('name' => 'ingr_unit[]', 'class' => 'unit_' +id); echo form_input($data); ?>'
+'<span class="remove">X</span>'
+'<span class="save" id="' +count +'">Save</span>'
+'</td>';
+'</tr>';
$("#ingr_table > tbody").append(row);
});
有没有人能解决我的问题?非常感谢那些愿意帮助的人。
答案 0 :(得分:0)
未终止的字符串文字错误可能是因为{/ 1}}之后的
;
代码很难阅读,因为你正在混合使用PHP和JavaScript。我建议将所有PHP移动到一个块中,然后仅输出PHP变量:+'</td>';
以便清楚。
答案 1 :(得分:0)
你真的需要CodeIgniter的form_input
助手吗?
function form_input($data = '', $value = '', $extra = '')
{
$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
return "<input "._parse_form_attributes($data, $defaults).$extra." />";
}
因为这只会返回<input name=$name class=$class/>
,
我想你可以把它转换成这个。
var row = '<tr>'
+'<td>'
+'<input name="ingr_name[]" class="ingr_name_'+id+'"/>'
+'</td>'
+'<td>'
+'<input name="ingr_amount[]" class="amt_'+id+'"/>'
+'</td>'
+'<td>'
+'<input name="ingr_unit[]" class="unit_'+id+'"/>'
+'<span class="remove">X</span>'
+'<span class="save" id="' +count +'">Save</span>'
+'</td>';
+'</tr>';