如何从jQuery选择器获取正确的outerHTML

时间:2017-12-29 15:53:10

标签: javascript jquery

大家晚上好

我正在使用jquery-plugin有下一行代码:

UNIQUE()

我的代码中的var problem = ["<h1>","<h1>"];

return '<td>' + field.setValue(field.html, content)[0].outerHTML + '</td>';

代码的结果如下:

setValue

但是,我希望得到以下

    field_templates: {
        'number': {
            html: '<input type="number" name="monday-start">',
            getValue: function (input) {
                return $(input).val();
            },
            setValue: function (input, value) {
                if (value) {
                    return $(input).val('66').addClass('setValue').data('dtv-val', 555);
                }
                return $(input).val('');
            }
        }
    },
请告诉我哪里错了?我不明白的是什么?如何让<input type="number" name="monday-start" class="setValue"> 要求我属性?我还不足以了解JavaScript,因为我很乐意获得JS文档的链接,其中描述了我的问题理论

3 个答案:

答案 0 :(得分:1)

使用.data()方法会将键值对存储到匹配的元素而不会影响其html部分,您必须使用.attr()

这一行:

 return $(input).val('66').addClass('setValue').data('dtv-val', 555);

将其更改为:

 return $(input).val('66').addClass('setValue').attr('dtv-val', 555);

答案 1 :(得分:1)

<强> .val()
其中包含.val('66') val 66,就像您输入了某些内容,而不是属性value本身;

<小时/> 的 .addClass()

.addClass('setValue')会添加一个名为&#39; setValue&#39;的类,它没问题;和

<小时/> 的 .data()
.data('dtv-val', 555)它不会以这种方式改变任何内容,请阅读API以获取更多信息。 .attr()是您正在搜索的内容:

&#13;
&#13;
$('#ipt').attr('value','66').attr('class','setValue').attr('data-dtv-val', '555');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input id="ipt">
&#13;
&#13;
&#13;

(如果需要,您可以将.attr('class', 'setValue')更改为.addClass('setValue')

答案 2 :(得分:0)

你可能正在得到你想要的东西,但它看起来并不像你期望的那样。

使用jQuery,它不会将数据元素放入HTML中。它只是以一种隐藏的方式存储它。

但是,如果您再次获取该元素并检查其数据,您会发现它实际上存在。

console.log($('[name="monday-start"]').data('dtv-val'))