使用jQuery拆分和修改元素

Split up and modify an element with jQuery

本文关键字:修改 元素 拆分 jQuery 使用      更新时间:2023-09-26

这里有一个令人困惑的问题。我需要用不同的<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/

你可以做(我用了一个简单的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/

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

克隆怎么样?

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

更新jsFiddle

将现有的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";

演示