Как я могу использовать заголовок элемента в качестве селектора идентификатора в JQuery? - PullRequest
2 голосов
/ 03 апреля 2012

что я пытаюсь сделать, это когда я нажимаю на ссылку, она захватывает заголовок и затем использует его как селектор идентификатора для вызова элемента с идентификатором #target для показа.Я установил название ссылки как таковое, и оно должно быть нацелено на a.Я думаю, что тип данных не совпадает, поэтому я не могу использовать заголовок непосредственно в качестве селектора идентификаторов?Пожалуйста, помогите или есть ли лучшее решение для этого?

$("a").click(function(event){
        event.preventDefault();
        var target = $(this).attr("title");
        alert(target);
        $("article").fadeOut("slow", function(){
            //animation completed
            $(target).fadeIn("slow");   
        });
    });     

Ответы [ 4 ]

2 голосов
/ 03 апреля 2012

все, что вы можете сделать, это

$("#" + target).function()

так что ваш код будет

 //animation completed             
 $("#" + target).fadeIn("slow");  

В соответствии с документацией jQuery "#" является селектором идентификатора, поэтому всякий раз, когда вы пытаетесь получить доступ к элементу по его идентификатору, вам нужно ot appedn "#", т. Е. Ваш код станет

$("#"+ youid) or $("#elementid")
1 голос
/ 03 апреля 2012

если в вашем заголовке отсутствует символ #, попробуйте вместо этого

var target = "#" + $(this).attr("title");

и всегда проверяйте, не является ли селектор недействительным, перед использованием с

if ($(target).length) {
    /* target exists */
}
1 голос
/ 03 апреля 2012

Вам просто нужно превратить его в действительный селектор id, связав его с #:

$("#" + target).fadeIn("slow");

То, что у вас есть, ищет элементы, имя тега которых соответствует titleатрибут.

0 голосов
/ 03 апреля 2012
$("[title='" + target +"']").fadeIn();
...