2014-04-29 37 views
0

當過我給一個字&之間的空間我點擊呼叫功能,然後我得到了以下錯誤:jQuery的:語法錯誤:未結束的字符串

SyntaxError: unterminated string literal 
[Break On This Error] 

$(this).SelectProjectBox(363,"ssss 

mypage# (line 1, col 29) 

瀏覽器生成的html:

<span ssasas")="" onclick="$(this).SelectProjectBox(363,"ssss" href="#">ssss ssasas</span> 

我的實際代碼

echo '<span href="#" onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>'; 

的原因是什麼,請建議,我怎麼能修改我的PHP代碼呢?

+0

引用您的HTML屬性值正常 – Gumbo

+0

@Sundara嘗試'回聲「 project_id。'\',\''。$ cat-> project_name。'\')」>'。$ cat-> project_name。'';' –

+0

@TusharGupta是的,您的評論爲我工作..任何人都可以描述您的解決方案。 –

回答

0

而不是

echo '<span href="#" onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>'; 

嘗試

echo '<span href="#" onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>'; 

在這裏,我們呼應HTML的一部分,我們正在使用單引號包圍整個HTML字符串。因此,無論何時我們想在字符串中使用單引號,在這裏我們希望它用於函數,我們必須使用反斜槓將其轉義爲/',它將顯示單引號。否則,字符串將在該點停止。在onclick事件

+0

'語法錯誤:未結束的正則表達式字面 [打破這個錯誤] \t $(本).SelectProjectBox( '359', 'DDDDDDDDD')> DDDDDDDDD analytics.js (line 16, col 54) –
                        <span class="text-secondary">
                            <small>
                                <span></span>
                            </small>
                        </span>
                    </p>
                </div>
            </div>
        </div>
        <div itemprop="comment" class="post-comment">
            <div class="row">
                <div class="col-lg-1"><span class="text-secondary">+0</span></div>
                <div class="col-lg-11">
                    <p class="commenttext">missed ending quotes ..try with my updated answer –
                        <span class="text-secondary">
                            <small>
    <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2256771/">Jenz</a></span>
                                <span></span>
                            </small>
                        </span>
                    </p>
                </div>
            </div>
        </div>
        <div itemprop="comment" class="post-comment">
            <div class="row">
                <div class="col-lg-1"><span class="text-secondary">+0</span></div>
                <div class="col-lg-11">
                    <p class="commenttext">now worked. Can you please describe your answer, so that next time i can solve this type of issue by myself –
                        <span class="text-secondary">
                            <small>
                                <span></span>
                            </small>
                        </span>
                    </p>
                </div>
            </div>
        </div>
    </div>
            </div>
        </article>
<div>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-6208739752673518"
         data-ad-slot="1038284119"
         data-ad-format="auto"
         data-full-width-responsive="true"></ins>
    <script>
        (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
</div>
        <article class="board-top-1 padding-top-10">
            <div class="post-col vote-info">
                <span class="count">3<i class="fa fa-thumbs-up"></i></span>
            </div>
            <div class="post-offset">
                <div class="answer fmt">
                <p>你丟失的報價嘗試</p> 
<pre><code class="prettyprint-override">echo

,或者嘗試

<span href="#" onClick="$(this).SelectProjectBox(<?php echo $cat->project_id ;?>,<?php echo $cat->project_name;?>)"><?php echo $cat->project_name;?></span> 
+1

Quotes appearing in an [unquoted value](http://www.w3.org/TR/html5/syntax.html#attribute-value-(unquoted)-state) are not allowed. – Gumbo

+0

error: 'Uncaught SyntaxError: Unexpected token ILLEGAL' Html: ' SSSS ssasas' –

+0

@Sundara檢查我的更新答案 –

1

如果我可以給你一些建議:分手了你的代碼多一點。這是比較容易爲人們所理解:使用\

$content = "<span href='#' "; 
$content .= "onClick=\"$(this).SelectProjectBox($cat->project_id,'$cat->project_name')\""; 
$content .= ">"; 
$content .= $cat->project_name . "</span>"; 

echo $content; 
+0

中回顯HTML,那麼我的代碼將會很長。在我的代碼中已經有832行 –

+0

但是它對維護會更好。如果其他程序員不得不使用這些代碼,那麼他們需要很長時間才能理解。如果你的文件真的變得很大,那麼你可以將它分成單獨的文件。 – GuyT

+1

正如你所看到的,當你在自己的代碼中犯了一個錯誤,它需要很長時間(甚至是SO問題)才能糾正它。只要考慮我的代碼。而是使用4000行可讀代碼,然後使用800個不可讀代碼。 – GuyT

1

逃逸單引號(')。

\'迴音必'

To specify a literal single quote, escape it with a backslash (\). To specify a literal backslash, double it (\\). All other instances of backslash will be treated as a literal backslash: this means that the other escape sequences you might be used to, such as \r or \n , will be output literally as specified rather than having any special meaning.

代碼

echo '<span href="#" onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>'; 

String

+1

+1感謝您的解釋 –

+0

@Sundara同時閱讀http://stackoverflow.com/questions/10886899/ –

相關問題