JQuery-将html按钮替换为<李>同时保持值不变
JQuery - Replace html button with <li> while keeping values intact
我有一个带有按钮的页面:
<input type="button" alue="TEST"
style="height:40px;width:120px;"
onClick="javascript:window.location='page.html';" />
我想将其转换为(webui):
<li><a href="page.html">TEST</a></li>
这是我目前为止的代码:(似乎不起作用)
$('<input type="button" value=').replaceWith('<li>');
$('onClick="javascript:window.location=').replaceWith('<a href="');
$('';" />').replaceWith('" target="_self"></a></li>"');
或者以更通用的方式:
$("input[type='button']").replaceWith(function() {
var $button = $(this);
var $result = $("<a></a>");
var target = $button.attr("onClick");
target = target.substr(target.indexOf(''''));
target = target.substr(0, target.length - 2);
$result.attr("href", target);
$result.text($button.val());
$result = $("<li></li>").append($result);
return $result;
});
现场示例:http://jsfiddle.net/ERLgR/1/
您正在尝试对jQuery对象进行字符串替换,但这不是它的工作方式。你可以这样做:
$(':button[value="TEST"]').replaceWith($('<li><a href="page.html">TEST</a></li>'));
此外,正如Tomalak在评论中补充的那样,最好的做法是直接在HTML中更改它,而不是使用javascript。
这似乎是一个普遍的坏主意,但这里有一个答案?
var elm = $('input[type="button"]'),
alue = elm.attr('alue'),
page = elm.attr('onClick').split("'")[1],
elm2 = '<li><a href="'+page+'">'+alue+'</a></li>';
elm.replaceWith(elm2);
FIDDLE
相关文章:
- 单击事件在替换<使用>元素在<svg>(Win7/IE11)
- Eloqua替换<脚本>标签
- 如何替换最后<a>使用jquery从节中标记
- 将换行符替换为<br/>并将其保存到数据库中
- 替换<标签>,包含的表单控件除外
- 替换' '其中<br>在JavaScript中
- Javascript.替换元素“<termref/>"用规则的“;文本”;
- jquery:找到换行符并将其替换为<br>
- 如何替换</身体>并在其前面插入文本
- 如何替换/更改<h1></h1>,使用Javascript
- JQuery-将html按钮替换为<李>同时保持值不变
- JavaScript Regex:将|b|替换为<b>
- 替换/编码<并且>在提交之前使用jquery/ajax
- Javascript:替换<br>出现在多组括号之间
- 替换<a>如果它以字符串JQuery结尾
- 如何将小数逗号替换为<输入类型=“;数字“>
- 替换<img>其中<对象>
- 如何使此字符串替换代码与`<br/>`标签
- 什么'这是替换`<a>`使用Javascript/JQuery
- jQuery替换<p>用换行符标记