1

オブジェクトのhtmlを置き換えてjQueryを実行しようとしています。しかし、このようにifステートメントを内部に配置するにはどうすればよいですか。

$(this).html("<select id=\'status\' name=\'status[]\' multiple><option value=\'1\'"+if(string_contains(selected, 1)) { document.write(\' SELECTED\'); }+"></option></select>");

ifステートメントはそれを動作を停止させます。

そして、ちょっとした質問。

なぜ私はこのように.htmlの中に侵入できないのですか?

        $(this).html("
<select id=\'status\' name=\'status[]\' multiple>
<option value=\'1\'"+if(string_contains(selected, 1)) { document.write(\' SELECTED\'); }+"></option>
</select>");
4

1 に答える 1

4

あなたが持っているものは構文的に間違っています。

$(this).html("<select id=\'status\' name=\'status[]\' multiple><option value=\'1\'" +
  (string_contains(selected, 1) ? "\' SELECTED\'" : "") +
  "></option></select>"
);

ifステートメントはまさにそれです—ステートメント。JavaScript式の一部としては機能しません。ただし、? :オペレーターはあなたが望むことをします。それは次の形式を取ります:

query ? expr1 : expr2

query式が評価されます。結果が「真実」の場合、全体的な結果はexpr1;の値になります。それ以外の場合は、の値ですexpr2。の演算子の優先順位? :はかなり低いため、通常は全体を括弧で囲むことをお勧めします。

于 2012-10-27T12:52:24.910 に答える