如何检索id

时间:2012-07-09 13:45:44

标签: php jquery

我有一个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”这个词?

3 个答案:

答案 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')