从锚标记中获取元素 ID 并替换 href
Getting element id from anchor tags and replace href
我有一个Joomla项目,在更改下拉菜单列表中的链接时遇到一些问题。
我有这个菜单及其子菜单。
店
- 第一猫
- 二猫
- 第三只猫
.HTML:
<ul class="level2">
<li>
<a id="firstcat" href="/my_website/index.php/shop/firstcat">First Cat</a>
</li>
<li>
<a id="secondcat" href="/my_website/index.php/shop/secondcat">Second Cat</a>
</li>
<li>
<a id="thirdcat" href="/my_website/index.php/shop/thirdcat">Third Cat</a>
</li>
</ul>`
在 Joomla 中默认菜单项链接到其category_alias。但我想将菜单链接到他们的category_id。现在,我想获取它们不同的 id,并在数据库中找到它们对应的category_ids,并将href
替换到它们的category_id中。
喜欢这个:
<a id="firstcat" href="/my_website/index.php/shop?16">FirstCat</a>
<a id="secondcat" href="/my_website/index.php/shop?17">SecondCat</a>
<a id="thirdcat" href="/my_website/index.php/shop?18">ThirdCat</a>
我只想通过JavaScript或jQuery来做到这一点,因为在Joomla中挖掘文件并将别名替换为id需要时间。
目前,我只手动完成。$('ul.level2 li a#firstcat').attr('href','/my_website/index.php/shop?catid=16');
$('ul.level2 li a#secondcat').attr('href','/my_website/index.php/shop?catid=17');
$('ul.level2 li a#thirdcat').attr('href','/my_website/index.php/shop?catid=18');
在 php 部分,我必须得到他们的category_id是这个。
<?php
echo $menuItem->alias . '<br/>';
$db = & JFactory::getDBO();
$db->setQuery('SELECT id FROM #__k2_categories WHERE alias="' . $menuItem->alias . '"');
$result = $db->loadResult();
echo $result;
foreach ($result as $res) {
echo $res->id;
}
?>
$menuItem->alias
-> 获取正在查看的当前项的别名。
假设你的JS中有{category_id:"someValue", category_alias:"someValue"}
myArr
array
(也许你可以通过ajax调用来获得这个,不管你怎么做)
做类似的事情
var length = myArr.length;
for(var i = 0 ; i < length ; i++) {
$("#" + myArr[i].category_alias).attr("href","/my_website/index.php/shop?" + myArr[i].category_id);
}
我没有时间测试这一点,所以如果我错了,请随时纠正我。
wew!对不起,打扰了家伙..但是我必须做ajax调用才能让它工作。
我是这样做的。
我的PHP:$q = $_GET['q'];
$db = & JFactory::getDBO();
$db->setQuery('SELECT id FROM #__k2_categories WHERE alias="' . $q . '"');
$result = $db->loadResult();
if (!empty($result)) {
echo $result;
exit();
}
我的脚本:<script type="text/javascript">
(function($){
$(document).ready(function() {
$('.level2').click(function(e) {
CurrElId = jQuery(this).attr("id");
$.ajax({
type: 'GET',
url: location.href,
data: 'q='+CurrElId,
success: function(data) {
var basepath = "/mywebsite/index.php/shop";
location.href = basepath+'?'+data;
}
});
e.preventDefault();
});
});
})(jQuery);
</script>
添加这个jQuery脚本。
$("#firstcat").attr("href","/my_website/index.php/shop?16");
$("#secondcat").attr("href","/my_website/index.php/shop?17");
$("#thirdcat").attr("href","/my_website/index.php/shop?18");
- 将URL字符串${userid}替换为javascript对象中的实际用户id
- 在库(javascript/HTML)中将“name”替换为“id”
- 将 id 中的冒号替换为 :
- 用另一个没有ID的类移除/替换类-仅限Javascript
- Jquery克隆表单值并替换表单字段id
- 在 IE8 之前替换了属性(“id”)
- 在 jquery 中使用类和 ID 将一个图像替换为另一个图像
- 从锚标记中获取元素 ID 并替换 href
- 如何将帖子 ID 替换为网址 slug
- JavaScript 用具有特定 ID 的正则表达式 img 标记替换,但其他属性可以是任何属性
- 将 ID 替换为特定 URL 的元素
- 如果 ID 以前缀开头,则 JQuery 替换 html 元素内容
- 使用lodash替换具有相同id的数组中对象
- 单击链接时替换gdata播放列表提要中的播放列表id
- 如何获取选定的文本id,并用javascript替换保持标签完整的文本
- 如何为没有ID的元素替换类名
- Fabric JS用相同的Item(ID)替换对象
- 将id替换为类,现在Javascript无法运行
- Javascript/Typescript -在视图中将用户ID替换为用户名
- 将Id替换为名称