jquery获取表单中所有无线电/复选框的html代码

时间:2011-11-09 07:44:24

标签: javascript jquery

我正在尝试解析表单的某些元素。

我有表格ID /表格名称。

现在我想通过name =“radio123”(或id =“radio123”)解析所有单选按钮。 但是当我在每个元素(单选按钮)上尝试$(this).html时......然后我得到一个空值......

如何访问表单中所有单选按钮/复选框的HTML代码?

2 个答案:

答案 0 :(得分:0)

这样的事情应该有效 -

var htmlarr = [];

$("input[type='radio'][name='radio123'],[type='radio'][id='radio123']").each(function () {
   //any logic you need here
   htmlarr.push($(this).clone().wrap('<div>').parent().html());
})

演示 - http://jsfiddle.net/tJ2Zc/

代码使用此方法$(this).clone().wrap('<div>').parent().html()来获取DOM元素的外部HTML。可以在问题中找到更多信息 - Get selected element's outer HTML

上面的代码将所有单选按钮html写入数组,但您可以将其更改为在循环中执行您希望的操作。

答案 1 :(得分:0)

这是jQuery.fn.html函数的正常行为:This method uses the browser's innerHTML property.如果您不明白我的意思,请查看示例。

我不知道为什么要获取HTML(如果你想要值,请查看jQuery.fn.val方法),但这是一个解决方案

$("input:radio").each(function () {
   console.log( this.outerHTML );
});

注意outerHTML,因为在所有浏览器中都不支持使用此功能:

function getOuterHTML( node ) {
    var parent = node.parentNode,
        el = document.createElement( parent.tagName ),
        shtml;

    el.appendChild( node );
    shtml = el.innerHTML;
    parent.appendChild( node );

    return shtml;
}
// use it like getOuterHTML( this ) in the preceding each loop