2010-05-25 28 views
7

Về cơ bản tôi đang cố gắng làm chính xác những gì chủ đề gợi ý, nhưng tôi nhận được "không xác định" trong cảnh báo của mình và tôi không hoàn toàn chắc chắn lý do. Tôi khá mới để jquery, vì vậy, tôi có thể có cú pháp sai, nhưng không chắc chắn nơi để đi từ đây. Tôi sẽ đăng cả hai nỗ lực của tôi, mà cả năng suất "không xác định" trong báo ...lấy một id của phần tử con và lưu trữ trong một biến bằng cách sử dụng jquery?

//In my first attempt, I'm trying to get the id of the inner a tag 
<ul> 
       <li id="l1" class="active"><a href="#c1">Samp 1</a></li> 
       <li id="l2" class=""><a href="#c2">Samp 2</a></li> 
       <li id="l3" class=""><a href="#c3">Samp 3</a></li> 
     </ul> 

var selected = $(".active).children("a").attr("id"); 
    alert(selected); 

//In my second attempt, I'm trying to get the id of the currently selected li 
    var selected = $(".active").attr("id"); 
    alert(selected); 

Trả lời

12
$(".active").children("a").attr("id"); 

<a> yếu tố bạn không có một id, chỉ một href. Và bằng cách sử dụng một bộ chọn thay vì chức năng trẻ em có thể làm cho mã của bạn dễ đọc hơn.

Bạn có nghĩa là $(".active > a").attr("href")?


$(".active").attr("id"); 

jQuery sẽ trả lại id thuộc tính của phần tử đầu tiên trong bộ sưu tập jQuery. Bạn có yếu tố nào khác với lớp học active không?

Tôi khuyên bạn nên thử $("ul > li.active").attr("id")

0

Vấn đề với các neo dường như là không ai trong số các neo bạn đang chọn thực sự có một ID. Bạn có nghĩa là .attr("href") bởi bất kỳ cơ hội nào?

1

Trong nỗ lực đầu tiên, bạn đang nhận được <a> trong <li> ... mà không có một ID, bạn chỉ cần điều này:

var selected = $(".active").attr("id"); 
alert(selected); 

Vì vậy, nỗ lực thứ hai của bạn là đúng, you can see it in action here.

Nếu bạn thực sự muốn lấy số id từ yếu tố <a>, thì bạn cần cung cấp ID cho họ và nỗ lực đầu tiên của bạn sẽ hoạt động, you can see it here.

-1

Bạn nhận được thuộc tính sai (hoặc bạn có đánh dấu sai). Không có thuộc tính "id" trong thẻ của bạn. Bạn có "href" thuộc tính, vì vậy nếu bạn đang cố gắng để geth giá trị của "href" bạn nên sử dụng này:

var selected = $(".active).children("a").attr("href"); 
    alert(selected); 

Nếu không nếu bạn cần phải nhận được id của cha mẹ bạn nên sử dụng:

var selected = $(".active).attr("id"); 
    alert(selected); 
+0

Bạn đang bỏ lỡ các dấu ngoặc kép. –

Các vấn đề liên quan