Jquery can';t更改数据迷你属性

Jquery can';t更改数据迷你属性,jquery,attributes,Jquery,Attributes,我使用的是一个数据迷你属性设置为true的文本框和一个按钮来操作输入文本框的属性 <input type="text" name="text1" Value="Enter name" id="txt1" data-mini="true" ></text> <input type="button" value="Update Attribute" id="but1" onClick="$(this).UpAttr();"> </button>

我使用的是一个数据迷你属性设置为true的文本框和一个按钮来操作输入文本框的属性

<input type="text" name="text1"  Value="Enter name" id="txt1" data-mini="true" ></text>

<input type="button" value="Update Attribute"  id="but1" onClick="$(this).UpAttr();"> </button>
但数据迷你属性未设置为false,尽管值属性在单击按钮时更新。 找不到任何解决方案!!
谢谢。

您需要使用
data()
功能:

$.fn.UpAttr = function() {
    $("#txt1")
        .data('mini', false)
        .prop('value', 'New Value');
    alert('The Button was clicked.');
}

这是因为出于性能原因,jQuery将
数据-*
属性保留在内部缓存中。仅更改属性不会更新该属性。如果您在任何DOM检查器中检查页面,HTML不会更改,但jQuery的行为会更改。

如果您想更改,请尝试此操作

数据属性在第一次访问数据属性时被拉入,然后不再被访问或修改(所有数据值都存储在jQuery内部)


最后,我通过修改style属性更新了文本框的宽度。我用以下方法解决了这个问题:

<input type="text"  name="text1" id="txt1"  Value="Enter name" style="width:20%;" ></input>
<br><br>
<input type="button" value="Update Attribute"  id="but1" onClick="$(this).UpAttr();"> </input>
Nd Plz检查任何js或css文件都没有覆盖它


data mini的值也由以前的代码更新,但它没有反映在phonegap+android的文本框布局中。可能是一些或其他css或js会覆盖它!!感谢@rajesh kakawat对此进行探索。:)

没有第一次。。这不管用。。setAttribute正在为其他属性工作,dnt knw不更新数据迷你!!很抱歉,他们的拼写错误检查现在我有一个文本框,默认情况下,data mini设置为true。单击按钮,我想设置数据mini=“false”。但是什么都不管用!!让我们先看看这没用。。。输入文本的布局仍然很小!!我想这是由插件造成的,插件正在设计输入的样式。在更改
数据
属性后,您可能需要删除插件,然后重新实例化插件请指导我如何操作??您需要更新您的问题以说明您使用的插件我只使用了以下js文件链接
document.getElementById('txt1').setAttribute('data-mini',false);
<input type="text"  name="text1" id="txt1"  Value="Enter name" style="width:20%;" ></input>
<br><br>
<input type="button" value="Update Attribute"  id="but1" onClick="$(this).UpAttr();"> </input>
 $.fn.UpAttr=function()
    {

    $("#txt1").attr('style','width:80%;');
         alert("The Button was clicked.");
    }