2011-06-16 25 views
0

当我嵌入或使用PHP循环创建多个div与一些ID。 我希望他们每个人都使用jQuery。说什么就像简单的隐藏/显示界面。jQuery的PHP嵌入DOM元素相同的问题

但是,由于id是相同的,它不会工作。我分配一个变量让我说$ i到php循环以供唯一性参考。我可以给ID为DOM元素与像

  <div id="element-<php echo $i ?>">Bla Bla </div> 

腓这里呼应了完美,但我如何使用jQuery像这样使用它:

 $("#element"+<?php echo $i ?>).toggle(); 

这里它不工作。

我该如何正确地做,我哪里会出错?

对不起,英语不好。

感谢

+1

<?PHP的echo $ I?> – luca 2011-06-16 07:33:52

+0

你不关闭你的PHP代码中的JavaScript部分。这是实际的代码是什么样子,或者这只是一个抄写错误? – GordonM 2011-06-16 07:36:57

+0

对不起,我忘了把它们放在这里。但在实际的代码中,他们在那里。对不起:) – kritya 2011-06-16 07:38:28

回答

0

的PHP代码正确的语法是:

<?php 

//code 

?> 

所以在这里,你可以清楚地看到什么是错误:

<php echo $i ?> 

它应该是:

<?php echo $i; ?> 

更新回答:

<?php 
for ($k=0;$k<=100;$k++) 
    echo '<div id="element-'.$k.'" onclick="toggleID('.$k.')">Here is the content of div $k</div>'; 
?> 

<script> 
function toggleID(id) 
{ 
    $("#element"+id).toggle(); 
} 
</script> 
+0

对不起,我忘了把它们放在这里。但在实际的代码中,他们在那里。对不起:) – kritya 2011-06-16 07:38:20

+0

然后你一定纠正了代码。顺便说一下,我有你的问题。让我更新答案。 – 2011-06-16 07:42:10

+0

阿哈哈,我很抱歉。我妈妈在咆哮着我关闭系统,所以我打了个响。顺便说一句,非常感谢:) D – kritya 2011-06-16 08:24:04

0

您不包括在jQuery代码破折号,你也不需要连接字符串:

$("#element-<?php echo $i; ?>").toggle(); 

PHP解释在服务器上,JavaScript是解释上客户端。您不应该考虑在这些环境之间连接字符串,因为它们是服务于您的应用程序的两个不同步骤。

+0

对不起,我忘了把它们放在这里。但在实际的代码中,他们在那里。对不起:) – kritya 2011-06-16 07:37:50

0

你的问题是,你没有”关闭你的PHP语句:

你错过了“?> “

试试这个:

;?> 

ATH您的发言结束

编辑:

加你错过了 ” - 元“ 之间的 ”“ 和” ID “:

Ex. element-1 

尝试包括”减号“:

$( “#元素 - ” + ID)

+0

对不起,我忘了把它们放在这里。但在实际的代码中,他们在那里。对不起:) – kritya 2011-06-16 07:38:50

1

你可以试试这个

<script> 
function togl(id) 
{ 
    $("#element"+id).toggle(); 
} 
</script> 

<?php 
for ($i=0;$<10;$i++) 
    echo '<div id="element-'.$i.'" onclick="toggle('.$i.')">Bla Bla </div>'; 
?> 
0

我觉得你的JavaScript代码应该是这样的,而不是你贴什么。

$("#element-"+<?php echo $i ?>).toggle(); 

但是,我不会推荐这种方法,因为它不是很有效。它会触发很多jQuery查找。

你最好给所有的问题div一个类,然后使用该类在jQuery中引用它们。

<div class="toggleThis" id="element-<php echo $i ?>">Bla Bla </div> 

$(".toggleThis").toggle(); 
+0

但是,当有人点击它时,这将切换所有的div。而我只是想让它只切换相关的div – kritya 2011-06-16 08:20:47

+0

好,那么在这种情况下ID方法可能是正确的。我写到你原来的代码的更正应该工作。但是我不认为这个字符对于ID是合法的,所以你可能想用_字符替换它 – GordonM 2011-06-16 08:46:21

0

问题是你不能有相同的ID。但是,如果你只是想要简单的显示/隐藏功能,你应该添加一个类到你的div而不是一个ID。所以..

class="toggableDiv" 

,然后在jQuery的

$(".toggableDiv").click();