功能不起作用后,没有给出错误

时间:2015-02-19 18:39:12

标签: javascript jquery

简而言之,我正在尝试生成一个输入,并在事后创建一个标签。但是,不是创建预期的标签html,而是没有显示标签,jsfiddle中没有错误显示(尽管它也不起作用),并且在执行代码时不会出现错误。在chrome中的开发者控制台中甚至没有任何内容。这是我用来尝试这个的代码片段。

fieldset.append($('<input/>').attr({ type: 'radio', name: 'category', value: key, id: key}).click( function() { highLightButton("selected", key);  hideShowText("show"); }).after("<label for='" + key + "'>AAA</label>"));

我绑错了吗?也许需要另外一个追加电话?从我看到它应该起作用的例子来看,它似乎只是忽略了代码。

根据要求提供jsFiddle网址

http://jsfiddle.net/bL7heuoc/

2 个答案:

答案 0 :(得分:2)

试试这个:

var $input = $('<input/>');

$input.attr({
    type: 'radio',
    name: 'category',
    value: 'abc',
    id: '123'
}).click(function (e) {
    console.log('click');
});

$('body').append($input);

$input.after("<label for='123'>AAA</label>");

JSFiddle演示:http://jsfiddle.net/sz29u00s/

答案 1 :(得分:1)

@Jim是对的,基本上对于“after”工作,你需要元素有一个父元素(最后是新元素的添加位置)。这就是为什么当你第一次附加到DOM然后调用after方法时它工作的原因。