通过jquery设置值
Posted
技术标签:
【中文标题】通过jquery设置值【英文标题】:setting a value through jquery 【发布时间】:2011-01-30 20:13:52 【问题描述】: <script>
function edit(elem)
var ele=$(elem).siblings('label#test').html();
var a=document.getElementById('test');
var htm = '<input type="text" name="modal" id="modal" style="width:70%;" value="'+$(elem).siblings('label#test').html();+'"/>';
$dialog.html(htm)
.dialog(
autoOpen: true,
position: 'center' ,
title: 'EDIT',
draggable: false,
width : 300,
height : 40,
resizable : false,
modal : true,
buttons: "Save" : function() if($('#modal').val() != '')a.value=$('#modal').val();$dialog.dialog('close'); else alert('i++'+$('#modal').val()+'++');
);
$dialog.dialog('open');
$(document).ready(function()
var flag=0;
$("input:radio[@name=template]").click(function()
var checkedoption = $(this).val();
if (checkedoption == "template3")
if (flag == 0)
var html = '<input type="text" name="val" id="val" /> <input type="button" value="Add" id="add"><br>';
$('#useroptions').append(html);
flag=1;
$('#add').click(function()
var a = $('#val').val();
if (a == '')
alert('Enter options');
else
var section= '<tr class="clickable"><td id="userval" BGCOLOR="#FF6699"><label id="test">' + a + '</label> <IMG SRC="/media/img/chunkedit.gif" onclick="javascript:edit(this);" > <IMG SRC="/media/img/close.gif" onclick="javascript:remove(this);" ></td></tr>';
$('#useroptions').append(section);
);
);
);
</script>
<form>
<table>
<tr><td>
<div id="useroptions"></div>
</tr></td>
</table>
</form>
如何在上面的代码中为 test 设置一个新值.. 谢谢
【问题讨论】:
label 元素不包含表单控件,也没有 for 属性。你确定你使用正确吗? w3.org/TR/html4/interact/forms.html#h-17.9.1 【参考方案1】:像这样使用值重载:
$(elem).siblings('label#test').html("<span>new value</span>");
【讨论】:
但是在这种情况下它会改变旧值吗? @Hulk,这是正确的,你能描述更多你所追求的吗?我相信我们可以为您的整体问题提供更好的解决方案。 嗨,如果我添加 2 个值,比如 a 和 b,然后将 html 设置为上述内容,则表示它将覆盖 'a',因为在我编辑 'b' 时首先添加了 'a'。处理这个.. @Hulk - 这意味着存在 ID 为test
的 2 个兄弟姐妹...这是无效的 HTML。如果a
和b
在不同的行上,那没关系,.siblings()
调用不会离开行。但是,多 ID 问题仍然存在,我建议改用一个类。
@Hulk - 你能用你试图编辑的表格更新你的帖子吗?表明你想要改变比猜测你的结构更容易。【参考方案2】:
你可以只引用#test,因为id-s需要是唯一的,然后使用文本设置值(或者如果你需要在#test中创建html元素,则使用html)
$('#test').text("new value");
【讨论】:
但是在这种情况下它会改变旧值吗? 是的,它会覆盖旧值。如果您想保留旧值,则必须将其存储在某个地方。 嗨,如果我添加 2 个值,比如 a 和 b,然后将 html 设置为上述内容,则表示它将覆盖 a,因为在我编辑 b.Hot 处理此问题时首先添加了 a。嗨,如果我添加 2 个值说 'a' 和 'b' 然后将 html 设置为上面表示它将覆盖 'a' 因为在我编辑 'b' 时首先添加了 'a'.Hot 来处理这个..跨度>以上是关于通过jquery设置值的主要内容,如果未能解决你的问题,请参考以下文章