所以jQuery 1.6具有新功能prop().
$(selector).click(function(){
//instead of:
this.getAttribute('style');
//do i use:
$(this).prop('style');
//or:
$(this).attr('style');
})
Run Code Online (Sandbox Code Playgroud)
或者在这种情况下,他们做同样的事情?
如果我也有转用prop(),所有的旧attr()电话,如果我切换到1.6将打破?
UPDATE
selector = '#id'
$(selector).click(function() {
//instead of:
var getAtt = this.getAttribute('style');
//do i use:
var thisProp = $(this).prop('style');
//or:
var thisAttr = $(this).attr('style');
console.log(getAtt, thisProp, thisAttr);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<div id='id' style="color: red;background: orange;">test</div>Run Code Online (Sandbox Code Playgroud)
(另见这个小提琴:http://jsfiddle.net/maniator/JpUF2/)
控制台会记录getAttribute作为一个字符串,并attr作为一个字符串,但prop作为一个CSSStyleDeclaration,为什么?这对我未来的编码有何影响?
我有一个应用程序,当选择某个单选按钮时显示一个div,然后在取消选择单选按钮时隐藏该div.问题是附加到单选按钮的更改事件仅在选中单选按钮时被调用,而不是在选中另一个单元时被调用(取消选中前一个).我目前的代码如下:
<form name="newreport" action="#buildurl('report.filters')#" method="post">
<dl class="oneColumn">
<dt class="first"><label for="txt_name">Name</label></dt>
<dd><input type="text" name="name" id="txt_name" class="text" /></dd>
<dt><strong>Type</strong></dt>
<dt><input type="radio" name="type" id="rdo_list" value="list" checked="checked" /><label for="rdo_type" style="display:inline;">List</label></dt>
<dd>List a group of records</dd>
<dt><input type="radio" name="type" id="rdo_fields" value="fields" /><label for="rdo_fields" style="display:inline;">Field Breakdown</label></dt>
<dd>Breaks down distinct field values for comparison</dd>
<dt><input type="radio" name="type" id="rdo_history" value="history" /><label for="rdo_history" style="display:inline;">Historical Comparison</label></dt>
<dd>Provides record changes over a group of years for growth comparisons</dd>
<dt><input type="radio" name="type" id="rdo_breakdown" value="breakdown" /><label for="rdo_breakdown" style="display:inline;">Student Breakdown</label></dt>
<dd>Breaks down students by …Run Code Online (Sandbox Code Playgroud) 基本上,当调用.attr("value")文本框时,它将返回其在标记中设置的值,而不是通过使用设置的值.val().
例如,
<input id="test" type="text" value="testing" />
Run Code Online (Sandbox Code Playgroud)
JS:
$("#test").val("hello");
console.log($("#test").val()); //hello
console.log($("#test").attr('value')); //testing
Run Code Online (Sandbox Code Playgroud)
但是在隐藏元素上做同样的事情时,结果却如下所示,
HTML:
<input id="test1" type="hidden" value="testing" />
Run Code Online (Sandbox Code Playgroud)
JS:
$("#test1").val("hello");
console.log($("#test1").val()); //hello
console.log($("#test1").attr('value')); //hello
Run Code Online (Sandbox Code Playgroud)
如果我们通过使用设置该元素的值,则会忽略value属性.val().任何人都知道为什么会这样?包含此行为详细信息的相关链接会更有帮助.
嗨,
我想改变元素的value属性<input type="color">.如果我点击它,它的工作原理,但输入按钮的显示颜色不会改变.如果我从头开始手动更改颜色,它可以工作(但我必须在运行时更改它).
看看这个JSFiddle得到我的意思:http://jsfiddle.net/5u544/
谢谢和问候Mat
我已经将不久前为另一个 Web 应用程序编写的代码用于另一个 Web 应用程序。但是,由于没有明显的原因,它没有检索结果:
\n\n\n\n\n由于以下原因,地理编码未成功:ZERO_RESULTS
\n
我有以下代码,其中 \xe2\x80\x94 暗示 \xe2\x80\x94 在其他地方正常运行:
\n\n<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>\n<script type="text/javascript">\n function googleMaps (lat, lng, zoom) {\n geocoder = new google.maps.Geocoder();\n var myLatlng = new google.maps.LatLng(lat, lng);\n var myOptions = {\n zoom: zoom,\n center: myLatlng,\n mapTypeId: google.maps.MapTypeId.TERRAIN\n }\n map = new google.maps.Map(document.getElementById("map-locations"), myOptions);\n var marker = new google.maps.Marker({\n position: myLatlng,\n map: map\n });\n google.maps.event.addListener(map, "center_changed", function(){\n document.getElementById("latitude").value = map.getCenter().lat();\n document.getElementById("longitude").value = map.getCenter().lng();\n marker.setPosition(map.getCenter());\n document.getElementById("zoom").value = map.getZoom();\n });\n google.maps.event.addListener(map, "zoom_changed", function(){\n document.getElementById("zoom").value …Run Code Online (Sandbox Code Playgroud)