我有一个PHP代码,它显示来自A-Z的按钮:
<table id="optionAndAnswer" class="optionAndAnswer">
<tr class="answer">
<td>3. Answer</td>
<td>
<?php
$a = range("A","Z");
?>
<table id="answerSection">
<tr>
<?php
$i = 1;
foreach($a as $key => $val){
if($i%7 == 1) echo"<tr><td>";
echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";
if($i%7 == 0) echo"</td></tr>";
$i++;
}
?>
...
我要做的是在jquery中为上面的代码创建一个模板,这样如果用户想要将这些按钮添加到一个块中,那么可以使用jquery在块中添加这些按钮,就像模板一样
下面是jquery代码:
var $this, i=0, $row, $cell;
$('#optionAndAnswer .answers').each(function() {
$this = $(this);
if(i%7 == 0) {
$row = $("<tr/>").appendTo($answer);
$cell = $("<td/>").appendTo($row);
}
var $newBtn = $("<input class='answerBtnsRow answers' type='button' style='display:%s;' onclick='btnclick(this);' />".replace('%s',$this.is(':visible')?'inline-block':'none')).attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class'));
$newBtn.appendTo($cell);
i++;
});
现在这个工作正常,但我有一个问题。如果你看一下php代码,每个按钮都有自己的id,在我的jquery代码中,每个按钮都没有自己的id。在我的jquery代码中,我希望每个按钮与php代码中的对应按钮具有相同的id,除了唯一的区别是我希望jquery按钮id以“Row”结尾。例如。如果php中的按钮F的id是#answerF
,那么我希望jquery中的按钮F具有id #answerFRow
。
我的问题是,这可能吗?如果我把它放在jquery代码中,这段代码是否能够从php代码中检索按钮id:
.attr('id', $this.attr('id'))
如何在结尾插入“Row”这个词?
答案 0 :(得分:0)
.attr('id', $this.attr('id')+'Row')
PHP只生成浏览器读取的文本,HTML,然后呈现。因此,如果PHP代码写入ID,那么jQuery可以读取它们。
答案 1 :(得分:0)
最好的方法是从php对象创建一个javascript数组对象,然后使用这个数组对象来检索id
lang=new Object();
<? foreach($a as $key=>$value){ ?>
lang[<?=$key?>] ='<?=$value?>'
<? } ?>
现在你可以使用这个java脚本对象“lang”获取你的keyValues。
答案 2 :(得分:0)
Javascript使用+运算符连接字符串,str='over'+'flow';
PHP连接字符串。 operator $str='over'.'flow';
因此在你的jquery中它可以是:.attr('id', this.id+'ROW')