使用jQuery拆分并修改元素

时间:2012-02-03 20:52:36

标签: javascript jquery onclick

这是一个令人困惑的问题。我需要用不同的<input>替换<input>,但我需要保留onclick属性。这是一个例子:

<input type="image" class="previous_page_img graybutton mediumbutton" src="btn_prevpage.png" onclick="Add_Search_Param('page', 1); Refine();" alt="">

由于我无法将<input>类型更改为按钮,我想用按钮替换它,但是,我需要保留“onclick”属性。首先,我必须打破元素。将其替换为按钮,并将原始的onclick属性附加到新按钮。

所以最后,我将这个onclick="Add_Search_Param('page', 1); Refine();"添加到新按钮。由于onclick更改,简单的.attr.prop函数是不够的。它必须克隆onclick属性。谁能帮我?感谢。

这里的jsFiddle不保留onclick属性,但执行其他所有操作:http://jsfiddle.net/rAMcw/

4 个答案:

答案 0 :(得分:2)

你可以这样做(我用一个简单的javascript函数来测试它)

<input type="image" class="previous_page_img graybutton mediumbutton" src="btn_prevpage.png" onclick="Add_Search_Param('page', 1); Refine();" alt="">

var onclick = $('.mediumbutton').attr('onclick');

var but =  $('<input/>', { type: "button", value: "pressme", onclick: onclick});

$('.mediumbutton').replaceWith(but);

在这里摆弄http://jsfiddle.net/KjBm3/

答案 1 :(得分:0)

只需在输入后立即创建一个新按钮,将输入设置为display: none;(或jQuery('#input').hide())并按下按钮触发输入的onclick(jQuery('#button').click(function(){ jQuery('#input').trigger('click'); });

答案 2 :(得分:0)

克隆怎么样?

var x = $('input').clone(true);
x.attr('type','button').addClass('previous_page_img graybutton mediumbutton').val('Previous Page');
$('input').replaceWith(x);

更新了 jsFiddle

答案 3 :(得分:0)

将现有的input元素转换为按钮有什么问题?

$("input.previous_page_img").prop("type", "button").val("Previous Page");

jQuery 1.4.2 :(在普通的JavaScript中设置属性);

$("input.previous_page_img").val("Previous Page")[0].type = "button";

Demo