wenjunlong88_easy
2018-06-19 19:17
采纳率: 80.5%
浏览 1.7k

通过prop方法给jquery对象属性赋值不起作用

向各位大佬请教:

 $("#blank_showz").empty();
            var $new_obj = $("<div></div>");
            $new_obj.prop("height","30px");
            $new_obj.prop("margin","0 auto");
            $new_obj.prop("th:replace","./odata-template.html :: test-my");
            $("#blank_showz").append($new_obj);
            alert($("#blank_showz").html())
        结果,新dom节点<div>什么属性都没有看到。各位大佬,请问这是什么原因造成的?望各位大佬不吝赐教!
        补充:th:replace是thymeleaf的属性。
再次表示感谢!
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 已采纳

    js改不了服务器端标签,自己查看服务器端标签生成的客户端标签是什么,更改对应的客户端dom对象。

    或者直接ajax请求服务器重新编译一次服务端标签获取返回的html来更新客户端

    已采纳该答案
    打赏 评论
  • 天际的海浪 2018-06-19 19:34

    prop()是设置DOM对象的属性,DOM对象的属性不会出现在html标签的源代码中。
    th:replace 是html标签的属性,应该用attr()方法设置
    height和margin是css样式的属性,应该用css()方法设置

    $new_obj.css("height","30px");
    $new_obj.css("margin","0 auto");
    $new_obj.attr("th:replace","./odata-template.html :: test-my");
    
    
    打赏 评论
  • qq_35919714 2018-06-20 01:01

    准确讲prop设置的是元素对象的属性及返回值,div中height margin属性存在css中,元素本身不存在此类属性,所以设置失败。

    打赏 评论
  • 程序员的键盘 2018-06-20 02:35

    prop 我一般用于 单选框和多选框
    $("input[type='checkbox']").prop("checked",true)

    打赏 评论
  • qq_32710389 2018-06-20 08:05

    可以试试attr()方法

    打赏 评论
  • 天佑我中华 2018-06-24 07:57

    prop() 方法应该用于检索属性值,例如 DOM 属性(如 selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected)。
    你这里,只能使用 attr() 方法代
    另外

            $new_obj.prop("height","30px");
            $new_obj.prop("margin","0 auto");
                        这个明显是css,方法也用错了,应该$new_obj.css({'height':'30px', 'margin':'0 auto'});
    
    打赏 评论

相关推荐 更多相似问题