私は画像クリックでこれらの別のものを追加しようとしています:jQueryオブジェクトにHTML要素を保存するにはどうすればよいですか?
<div class="roleoption">
<img src="@Url.Content("~/Public/images/delete.png")" alt="delete" />
@Html.DropDownList("role", DSS.WebUI.Helpers.CustomHelpers.SelectListItemsForRole(Model.ExistingRoles, role))
</div>
そして、ここで私は追加画像がクリックされるたびに新しい.roleoption
を作成しようとしています:
<script language="javascript" type="text/javascript">
$(document).ready(function() {
//A roundabout way to construct the DIV I need:
var $roleOption = '<div class="roleoption"><img src="@Url.Content("~/Public/images/delete.png")" alt="delete" /></div>';
var $selectList = '@Html.DropDownList("role", DSS.WebUI.Helpers.CustomHelpers.SelectListItemsForRole(Model.ExistingRoles, 1))';
$($roleOption).append($selectList);
$('img.add-role').click(function() {
$(this).parent().append($roleOption);
});
});
</script>
あなたがそこまで見MVC3コードは、ビュー上で次のスクリプトを生成しレンダリング:
<script language="javascript" type="text/javascript">
$(document).ready(function() {
var $roleOption = '<div class="roleoption"><img src="/Public/images/delete.png" alt="delete" /></div>';
var $selectList = '<select id="role" name="role"><option selected="selected" value="1">Anonimo</option>
<option value="2">Registrado</option>
<option value="3">Tecnico</option>
<option value="4">Empresario</option>
<option value="5">Editor</option>
<option value="6">Financias</option>
<option value="7">Administrador</option>
</select>';
$($roleOption).append($selectList);
$('img.add-role').click(function() {
$(this).parent().append($roleOption);
});
});
</script>
を私は次のエラーを取得する:
Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]
このコードをクリーンアップするにはどうすればよいですか?
私のHTMLヘルパーがマルチラインとしてselect要素を返すという問題があると思いますが、どうすればこの事実を回避できますか?
編集:
私が行う場合:
var $selectList = $(' @Html.DropDownList("role", DSS.WebUI.Helpers.CustomHelpers.SelectListItemsForRole(Model.ExistingRoles, 1)) ');
私が手:
$(document).ready(function() {
var $roleOption = '<div class="roleoption"><img src="/Public/images/delete.png" alt="delete" /></div>';
var $selectList = $(' <select id="role" name="role"><option selected="selected" value="1">Anonimo</option>
<option value="2">Registrado</option>
<option value="3">Tecnico</option>
<option value="4">Empresario</option>
<option value="5">Editor</option>
<option value="6">Financias</option>
<option value="7">Administrador</option>
</select> ');
$($roleOption).append($selectList);
$('img.add-role').click(function() {
$(this).parent().append($roleOption);
});
});
引用がありません。 – xdazz
'JavaScriptの引数arg 0を変換できませんでした[nsIDOMDocumentFragment.appendChild]' - その特定のjQuery関数のドキュメントへのリンクがありますか? HTML出力を文字列で囲む必要があるかもしれません。 –
[OK]をjQueryラッパーの中に引用符を追加し、問題は依然として立っています。私は非常にそれがJavaScriptのエンジンを混乱させる複数行のHTMLだと思う。これを回避するには何ができますか?どんな提案も大歓迎です。 –