获取LI元素的offsetWidth(或等效)

时间:2016-04-28 01:07:59

标签: javascript jquery

所以我试图使用jQuery获取元素的宽度。



class GameScene: SKScene, MPMediaPickerControllerDelegate, AVAudioPlayerDelegate {
var isMediaPickerOne = false
var isMediaPickerTwo = false

if node.name == "addmusictoright" {
        mediaPicker2 = MPMediaPickerController(mediaTypes: .AnyAudio)

        if let picker = mediaPicker2{

           isMediaPickerTwo = true
           isMediaPickerOne = false

            print("Successfully open media picker Left")
            picker.delegate = self
            picker.allowsPickingMultipleItems = false
            picker.showsCloudItems = false
            picker.prompt = "Please pick one song!"
            self.view?.window?.rootViewController!.presentViewController(picker, animated: true, completion: nil)

        } else {
            print("PICKER WONT OPEN")
}



 if node.name == "addmusictoleft" {
        mediaPicker = MPMediaPickerController(mediaTypes: .AnyAudio)

        if let picker2 = mediaPicker{

                isMediaPickerOne = true
                isMediaPickerTwo = false


            print("Successfully open media picker Left")
            picker2.delegate = self
            picker2.allowsPickingMultipleItems = false
            picker2.showsCloudItems = false
            picker2.prompt = "Please pick one song!"
            self.view?.window?.rootViewController!.presentViewController(picker2, animated: true, completion: nil)

        } else {
            print("PICKER WONT OPEN")
}




func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {

if isMediaPickerOne {
isMediaPickerTwo = false


let aMediaItem = mediaItemCollection.items[0] as MPMediaItem
music = aMediaItem
NSLog("\(aMediaItem.title)selected")
let url: NSURL = (music.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)!

player =  AVPlayer(URL: url)
player.pause()
}




if isMediaPickerTwo {
isMediaPickerOne = false

let aMediaItem2 = mediaItemCollection.items[0] as MPMediaItem
music2 = aMediaItem2
NSLog("\(aMediaItem2.title)selected")
let url2: NSURL = (music2.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)!

player2 =  AVPlayer(URL: url2)
player2.pause()

}
   }

alert($("#theList li:eq(0)").offsetWidth);




3 个答案:

答案 0 :(得分:4)

jQuery具有$(elem).width()函数,返回元素

offsetWidth



alert($("#theList li:eq(0)").width());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ol id="theList">
  <li>The quick brown fox</li> <!--also you forgot closing tag -->
</ol>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您正在将jQuery和标准Javascript混合在一起。

要使用.outerWidth,您需要访问DOM元素:

alert($("#theList li:eq(0)")[0].offsetWidth);

或者你可以使用jQuery的.outerWidth()

alert($("#theList li:eq(0)").outerWidth());

答案 2 :(得分:0)

offsetWidth是HTML Element的Readonly属性。因此,您应该使用此机制首先获取选择的第一个元素,然后为您提供jQuery选择的HTMLElement,然后获取它的属性:

   $('#theList li:eq(0)')[0].offsetWidth