2013-06-17 1 views
0

Я пытаюсь получить номер по этой ссылкеJquery переменная не определена при сохранении номера из .attr («HREF»)

<div id="section-tabs-header"> 
    <a id="section-tabs-header-subtitle" class="ellipsis" href="/courses/123456">Math 101</a> 

и сохранить его в переменной

var courseID = $("div#section-tabs-header a#section-tabs-header-subtitle").attr("href").match(/\d+/); 
console.log(courseID); 

но переменная "undefined".

http://jsbin.com/ukogam/2/edit

Это потому, что JQuery является нахождение в HTML, а не простой текст числа? Как получить только номер?

+0

'$ ("# главный а") атр ("HREF", "/ курсы /" + courseID);' и включают в JQuery:. Http://jsbin.com/eyoxir/1/ –

+0

Ваш код работает отлично: http://jsfiddle.net/JqfH4/. Но могу ли я предложить вам сократить ваш запрос до '$ ('# section-tabs-header-subtitle'). Attr ('href'). Match (/ \ d + /)'? –

ответ

1

Я ничего не видел о переменной, которая не определена. Я получил, что $ не определено, поэтому я включил jQuery. Затем я понял, что функция href не была функцией, поэтому я изменил код, который был после кода, который вы упомянули об этом: $("#main a").attr("href","/courses/" + courseID);

Я думаю, что это работает так, как вы ожидаете? http://jsbin.com/egevok/1/edit

1

Я изменил его, посмотрю http://jsbin.com/iculoq/2/edit.

var courseID = $("#section-tabs-header-subtitle").attr("href").split('/')[2]; 

$("#main a").attr('href', "/courses/" + courseID); 
+0

, пожалуйста, не стесняйтесь комментировать нисходящее, этот ответ лучше в смысле URL может содержать число в подпапке, но я бы использовал вместо этого: '.split ('/'). Pop()' –

+0

@roasted, I я удалил свой нисходящий поток, но я чувствую, что нет ничего плохого в коде OP (т. е. мы не можем воспроизвести его результаты), то это явно смешно, чтобы обеспечить «правильный» ответ, который «исправляет» его нерушимый код. OP не может быть лучшим кодом, но проблема заключалась в том, что он не включал jQuery, а не неотъемлемую проблему с кодом. –

+0

@DerekHenderson ваш комментарий действительно оценен! Если бы вы прокомментировали ваш downvote, мне бы нечего было сказать agaisnt, это имеет смысл –

1
var href = $("#section-tabs-header-subtitle") 
    .attr("href"); 
console.log(href); 
var courseID = href.match(/\d+/); 
console.log(courseID); 

$("#main a").attr("href","/courses/" + courseID); 
Смежные вопросы