1

我有这样的结构:

             <div id="slider"> 
               <div id="nav">
                    <div class="sliderPart">
                        <a href="#computers">
                            <strong>1</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#network">
                            <strong>2</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#web">
                            <strong>3</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#support">
                            <strong>4</strong>
                        </a>
                    </div>
               </div>
               <div id="slider-content">
                    <a href="#computers" id="slider-computers" class="slider-block">Test1</a>
                    <a href="#network" id="slider-network" class="slider-block">Test 2</a>
                    <a href="#web" id="slider-web" class="slider-block">Test 3</a>
                    <a href="#support" id="slider-support" class="slider-block">Test 4</a>
               </div>
            </div>

现在我必须处理点击“ nav ”和“ slider-content ”并获得点击元素href-attribute。

       $('#slider').click(function(){
            console.log( $(this) );
       });

使用此代码我得到

[div#滑块]

4

1 回答 1

3

用于attr获取或设置元素的属性值:

$('#slider a').click(function(){
    console.log( $(this).attr('href') );
});

选择器#slider指的是 div 元素,这就是 firebug 输出的原因[div#slider]。您可以使用祖先后代选择器定位其中的锚点:

匹配由“ancestor”指定的元素的“descendant”指定的所有后代元素。

这意味着将后代元素放在祖先之后,用空格分隔,如上例所示 -$('#slider a')


仅供参考,从1.6版开始 .prop() 引入。更多信息

属性和属性之间的区别在特定情况下可能很重要。在 jQuery 1.6 之前,.attr() 方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。从 jQuery 1.6 开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr() 检索属性。更多信息

例如,应使用 .prop() 方法检索和设置 selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked 和 defaultSelected。在 jQuery 1.6 之前,可以使用 .attr() 方法检索这些属性,但这不在 attr 的范围内。这些没有对应的属性,只是属性。更多信息

于 2009-10-04T16:22:05.690 回答