Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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
PHP中的Javascript蓝色:getElementById&;getElementsByClassName_Javascript_Php_Html_Getelementbyid_Getelementsbyclassname - Fatal编程技术网

PHP中的Javascript蓝色:getElementById&;getElementsByClassName

PHP中的Javascript蓝色:getElementById&;getElementsByClassName,javascript,php,html,getelementbyid,getelementsbyclassname,Javascript,Php,Html,Getelementbyid,Getelementsbyclassname,这应该足够简单,唉,这给了我一些问题: 我有一个PHP页面,它提供了最多三次不同的td内容迭代。第一个显示为display:table cell,其他显示为隐藏为display:none echo '<td style="display: table-cell" class="gameLineCell" id="'.$playerLine.'" colspan="3">'; 该脚本隐藏类的所有tdgameLineCell,并显示其链接被单击的对象 <script>

这应该足够简单,唉,这给了我一些问题:

我有一个PHP页面,它提供了最多三次不同的
td
内容迭代。第一个显示为
display:table cell
,其他显示为隐藏为
display:none

echo '<td style="display: table-cell" class="gameLineCell" id="'.$playerLine.'" colspan="3">';
该脚本隐藏类的所有
td
gameLineCell,并显示其链接被单击的对象

<script>
    function loadLine(line) {
        var lines = document.getElementsByClassName('gameLineCell');
        for (var i = 0; i < lines.length; i++) {
            lines[i].style.display = 'none';
        }
            document.getElementById(line).style.display = 'table-cell';
    }
</script>

功能载重线(直线){
var lines=document.getElementsByClassName('gameLineCell');
对于(变量i=0;i
当我查看PHP页面的源代码时,所有内容都正确呈现——我的链接在
loadLine
括号中显示正确的字符串,我的
td
s中的每一个都存在,第一个显示,其他隐藏——但是我的链接不起作用。我已尝试删除
getElementsByClassName
序列,只运行
getElementById
,但没有效果。什么也没发生

有什么想法吗

非常感谢任何帮助

安德鲁



编辑:错误的来源?Javascript正在切断我的连接!EV-F1变成EV。查看原因和如何立即修复。

您显示的代码有一个输入错误。这里有一个额外的

for (var i = 0; i < lines.length); i++)
for(变量i=0;i
应该是

for (var i = 0; i < lines.length; i++)
for(变量i=0;i
您显示的代码有一个输入错误。这里有一个额外的

for (var i = 0; i < lines.length); i++)
for(变量i=0;i
应该是

for (var i = 0; i < lines.length; i++)
for(变量i=0;i
这里有一些问题与字符串的正确转义和封装有关;我个人使用
printf()

printf('<td style="display: table-cell" class="gameLineCell" id="%s" colspan="3">',
    htmlspecialchars($playerLine, ENT_QUOTES, 'UTF-8');
);

这里有一些问题与字符串的正确转义和封装有关;我个人使用
printf()

printf('<td style="display: table-cell" class="gameLineCell" id="%s" colspan="3">',
    htmlspecialchars($playerLine, ENT_QUOTES, 'UTF-8');
);

控制台上没有错误?这应该可以工作(通过Claudio Redi的修复),因此如果没有,您应该在控制台中得到错误(正如@Ja͢ck指出的)。尝试在没有PHP的情况下生成一个脚本,并将其发布到问题中——很可能,您会在执行此操作时找到它,但如果没有,它将提供我们可以帮助您调试的内容。@Ja͢ck是的,控制台中有一个错误。它在连字符处切断了我的字符串,例如,
EV-F1
变成了
EV
!控制台上没有错误?这应该可以工作(通过Claudio Redi的修复),因此如果没有,您应该在控制台中得到错误(正如@Ja͢ck指出的)。尝试在没有PHP的情况下生成一个脚本,并将其发布到问题中——很可能,您会在执行此操作时找到它,但如果没有,它将提供我们可以帮助您调试的内容。@Ja͢ck是的,控制台中有一个错误。它在连字符处切断了我的字符串,例如,
EV-F1
变成了
EV
!抓得好@Claudio Redi,但还是不行!即使没有
getElementsByClassName
循环——仍然不起作用。@安德鲁:尝试在函数
loadLine
上插入一个断点,看看该函数是否被调用为good catch@Claudio Redi,但它仍然不起作用!即使没有
getElementsByClassName
循环——仍然不起作用。@安德鲁:尝试在函数
loadLine
上插入一个断点,看看函数是否被调用。这是可行的!非常感谢@Jack!我将迁移到
printf
。是的,这很有效!非常感谢@Jack!我将继续迁移到
printf
printf('<a onclick="loadLine(%s)" href="javascript:void(0)">%s</a>',
    htmlspecialchars(json_encode($playerLine), ENT_QUOTES, 'UTF-8'),
    htmlspecialchars($playerLine), ENT_QUOTES, 'UTF-8')
);