1

在某处我在 btn.attr() 中犯了一个错误,但找不到它。或者显然它不像我想象的那样工作,所以现在我很困惑。我可以用“with”在javascript中做到这一点,但我也很想学习如何在jquery中做到这一点。所以这里是代码:

function setattr(id, value) {
    var btn = document.createElement('input');
    btn.setAttribute('type', 'button');
    btn.attr({
        id: id,
        class: "btnclass", 
        value: "value"
        });};

我还能以某种方式使用 $(this) 吗?

4

4 回答 4

7

这是正确的方法但是

  • 您有语法问题(字符串"value"未关闭)
  • btn是 DOM 元素,而不是 jQuery 元素
  • class是保留字

做这个 :

$(btn).attr({
    id: id,
    "class": "btnclass", 
    value: "value"
});

请注意,应该通过查看浏览器的控制台发现这些错误。

于 2013-05-24T09:24:30.633 回答
0

使用 jQuery 你可以这样做:

function setattr(id, value) {
    var $btn = $('<input/>', {
        id: id,
        class: "btnclass",
        type: 'button',
        value: value
    });
}

请不要忘记将新的附加btnelement.

于 2013-05-24T09:28:39.390 回答
0

而不是:

var btn = document.createElement('input');
...

您可以简单地:

var btn = $('<input type="button" id="'+id+'" class="btnclass" value="value"/>');

.appendTo()然后,您可以使用、.prependTo()或 jQuery 提供的各种其他方法将其分配给您的页面。

JSFiddle 示例

于 2013-05-24T09:25:51.163 回答
0

试试这个演示

function setattr(id, value) {
var btn = document.createElement('input');

 $(btn).attr({
    type: 'button',
    id: id,
    class: "btnclass", 
    value: value
});
//bind event
$(btn).on('click', function(){
  alert('work....');
});
  $('body').append(btn);
};
于 2013-05-24T09:38:21.217 回答