相关疑难解决方法(0)

.prop()vs .attr()

所以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,为什么?这对我未来的编码有何影响?

javascript jquery dom prop attr

2249
推荐指数
14
解决办法
57万
查看次数

jQuery attr vs prop?

现在,这不只是一个有什么区别的问题,我已经做了一些测试(http://jsfiddle.net/ZC3Lf/)修改propattr<form action="/test/"></form>? 与输出是:

1)prop修改测试
Prop:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1

2)Attr修改测试
Prop:http://fiddle.jshell.net/test/1
Attr:/test/1

3)Attr然后Prop Propification测试
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11

4)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)

javascript jquery prop attr

100
推荐指数
1
解决办法
4万
查看次数

jQuery:获取数据属性

在我的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 javascript jquery custom-data-attribute

64
推荐指数
2
解决办法
16万
查看次数

使用javascript获取原始html代码

我需要在网页中获取元素的实际html代码.

例如,如果元素中的实际html代码是 "How to&nbsp;fix"

运行这个javascript getElementById('myE').innerHTML给出了"How to fix"哪个是解码后的形式

我怎样才能"How to&nbsp;fix"使用javascript?

html javascript

9
推荐指数
2
解决办法
1万
查看次数

jQuery attr vs. prop,有 props 列表吗?

这不是一个重复的问题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')
  • 哪些属性名称存在“跨浏览器一致性”风险?
  • 在某些情况下(使用 Microsoft-IE p.ex.)$(x).attr('name')$(x).prop('name')会返回不同的东西?

也许完整的列表不是必需的,只需列出对 jQuery 产生一些影响或风险的事物即可。

关闭后编辑:请单击下面的重新打开链接以接受此编辑的问题文本。

javascript jquery prop attr

5
推荐指数
1
解决办法
5203
查看次数

jQuery将div ID从x更改为y

使用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,它们在过去一直对我有用!

jquery if-statement

2
推荐指数
1
解决办法
133
查看次数

如何使用JQuery获取内部范围ID

我使用以下代码。

<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。有人可以帮忙吗,谢谢。

jquery

2
推荐指数
1
解决办法
2636
查看次数