У меня есть разные страницы для загрузки в один и тот же iframe, поэтому у меня есть эти функции
$("#a1").click(function () {
$("#frame").attr("src", "page1.html");
});
$("#a2").click(function () {
$("#frame").attr("src", "page2.html");
});
$("#a3").click(function () {
$("#frame").attr("src", "page3.html");
});
Как я могу сделать juste одной функцией, чтобы функция загружала "page"+numid+".html"
Используйте несколько селекторов ("селектор1, селектор2, селекторN")
$("#a1, #a2, #a3").click(function () {
var num = this.id.match(/\d+/)[0]; //Extract number from ID
$("#frame").attr("src", "page"+num +".html");
});
Или
Вы можете использовать Attribute Starts With Selector [name ^ = "value"], хотя я не рекомендую
$("[id^=a]").click(function () {
var num = this.id.match(/\d+/)[0]; //Extract number from ID
$("#frame").attr("src", "page"+num +".html");
});
Вы можете использовать селектор атрибута [attribute='value']
для выбора элементов с идентификатором, чтобы выбрать идентификатор, начиная с a
использованием [id^='a']
.
Используйте slice()
чтобы получить номер
$("[id^=a]").click(function () {
$("#frame").attr("src", "page" + this.id.slice(1) + ".html/");
});
Атрибут начинается с выбора [name ^ = "value"]
$("[id^=a]").click(function () {
$("#frame").attr("src", "page"+this.id.replace('a')+".html");
});
.match(/\d+$/)[0]
чтобы получить номер из идентификатора
$("[id^=a]").click(function () {
$("#frame").attr("src", "page"+this.id.match(/\d+$/)[0]+".html");
});
$("[id^=a]")
→ все элементы, начинающиеся с id a