所以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,为什么?这对我未来的编码有何影响?
现在,这不只是一个有什么区别的问题,我已经做了一些测试(http://jsfiddle.net/ZC3Lf/)修改prop和attr的<form action="/test/"></form>? 与输出是:
1)prop修改测试
Prop:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/12)Attr修改测试
Prop:http://fiddle.jshell.net/test/1
Attr:/test/13)Attr然后Prop Propification测试
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/114)Prop然后Attr修改测试
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
现在我对一些事情感到困惑,据我所知:
Prop:在通过JavaScript
Attr进行任何修改后的当前状态值:在页面加载的html中定义的值.
现在如果这是正确的,
prop似乎使action完全合格,相反为什么修改属性不?propin 1)修改属性,对我来说没有意义?attrin 2)修改属性,它们是否意味着以这种方式链接?HTML
JavaScript的
var element = $('form');
var property = 'action';
/*You should not need to modify below this line */
var body = …Run Code Online (Sandbox Code Playgroud) 在我的HTML中,我有一个span元素:
<span class="field" data-fullText="This is a span element">This is a</span>
Run Code Online (Sandbox Code Playgroud)
我想获得data-fullText属性.我尝试了这两种方式,但它们没有用(两者都返回undefined):
$('.field').hover(function () {
console.log('using prop(): ' + $(this).prop('data-fullText'));
console.log('using data(): ' + $(this).data('fullText'));
});
Run Code Online (Sandbox Code Playgroud)
然后我搜索并发现了以下问题:如何获取data-id属性?和jquery无法获取数据属性值.
这两个人的答案都是"Use .attr('data-sth') or .data('sth')".
我知道这.attr()已被弃用(在我使用的jquery-1.11.0中),但是,我试过了.
它工作了!
有人可以解释原因吗?
我需要在网页中获取元素的实际html代码.
例如,如果元素中的实际html代码是 "How to fix"
运行这个javascript
getElementById('myE').innerHTML给出了"How to fix"哪个是解码后的形式
我怎样才能"How to fix"使用javascript?
这不是一个重复的问题attr,我只需要决定使用还是使用更好/更快/正确prop。最简单可靠的方法是检查列表。“使用更好的元素名称列表prop(name)和/或使用更好的列表attr(name)”。
PS:我使用的是 jQuery 1.9+,并且假设这attr()不是一个已弃用的方法。
决策示例(LIST有答案):
$(x).prop('id')是通过还是通过更好地获取 ID 值$(x).attr('id')?$(x).prop('title','BLABLA')用或 用 更改标题更好吗$(x).attr('title','BLABLA')?$(x).attr('selectedIndex')?$(x).attr('name')和$(x).prop('name')会返回不同的东西?也许完整的列表不是必需的,只需列出对 jQuery 产生一些影响或风险的事物即可。
关闭后编辑:请单击下面的重新打开链接以接受此编辑的问题文本。
使用jQuery我想更改页面中的元素ID,div,并给它一个新的.我不能使用类,必须是ID.这将是IF语句的一部分,例如:(伪:)
如果x =大于1,则将x的id更改为y,否则不执行任何操作
到目前为止,我有:
$('#carriage-promo').attr('id','#carriage-promo-2');
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不起作用.有什么建议?
我从来没有使用ID,总是上课,我会使用addClass和removeClass,它们在过去一直对我有用!
我使用以下代码。
<div class="tt-suggestion">
<p style="white-space: normal;">
<span id="1">Rajesh<span style="float:right;">Bangalore</span>
</span>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
当我点击时,我需要有内部id。下面是我的代码来获取span ID
$(document).on('click', '.tt-suggestion', function(){
var id=$(this).find("span").id;
});
Run Code Online (Sandbox Code Playgroud)
从数据库中获得多少个值重复多次。当我点击它时,如果我获得了ID,则必须使用ajax将该ID作为参数发送给其他php,但是我无法获得该ID。有人可以帮忙吗,谢谢。