通过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" />&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp; <IMG SRC="/media/img/chunkedit.gif" onclick="javascript:edit(this);" >&nbsp;&nbsp;&nbsp;<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。如果ab 在不同的行上,那没关系,.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设置值的主要内容,如果未能解决你的问题,请参考以下文章

jQuery通过验证设置电话号码的最小值和最大值

如何通过jquery将下拉列表中的选定值设置为空

尝试通过在 jquery 中的任何位置键入来设置输入

jQuery:将表单输入值设置为 json 数据

jquery获取(设置)节点的属性与属性值

JQuery UI滑块'slide'功能未设置angularJS值