0

シナリオは次のとおりです。次の方法で buldMyStuff 関数を呼び出して、イメージを何度もビルドします。img を「a」タグにラップすることはできません。

function buildMyStuff(item){
    var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';
    return tag;
}

function doClick(type,data){
    //do stuff
}

item.type の値が「type」で、item.data の値が「data」であるとします。画像をクリックすると、タイプが定義されていないと表示されるという問題があります。したがって(そして、ビルドされたhtml構造をチェックインしました)、imgは最終的に次のようになります。

<img src="someimg.png" onclick="doClick(type,data)" />

私が達成する必要があるのは:

 <img src="someimg.png" onclick="doClick('type','data')" />

ただし、「」文字を使用してタグ全体をラップし、「」文字を使用して属性をラップしているため、他には何も使用できません。誰かがこれに対する解決策を知っていますか?

前もって感謝します。

4

3 に答える 3

1
function buildMyStuff(item){ 
    var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />'; 
    return tag; 
} 
于 2012-09-19T11:13:15.040 に答える
1

'\'特殊文字をエスケープするために使用できます。

var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';

=>

var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />';

于 2012-09-19T11:14:22.513 に答える
1

これは無効です。

var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';

そのはず

var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />';
于 2012-09-19T11:12:26.450 に答える