Javascript 基于条件插入元素

Javascript 基于条件插入元素,javascript,jquery,Javascript,Jquery,我想在检查条件后动态插入不同的url 这是伪代码 If div.id = "abc" then create url <a href="www.zzz.html"'>Cosmetics</a>'); Append url to div else if div.id = "xyz" then create url <a href="www.abc.html"'>LEather goods</a>'); Append url to div else

我想在检查条件后动态插入不同的url

这是伪代码

If div.id = "abc" then
create url <a href="www.zzz.html"'>Cosmetics</a>');
Append url to div

else if div.id = "xyz" then
create url <a href="www.abc.html"'>LEather goods</a>');
Append url to div

else if div.id = "mno" then
create url <a href="www.kkk.html"'>Diapers</a>');
Append url to div
等等

如何在JavaScript/jQUery中编写此代码。如果有15个这样的if-Else条件,如何有效地处理代码

这个代码看起来不太好

if $("#abc) then

 var dynLink = $('<a href=zzz.html"'>Cosmetics</a>');
    $("#abc").append(dynLink);

else if $("#xyz")
 var dynLink = $('<a href=abc.html"'>LEather</a>');
    $("#xyz").append(dynLink);

谢谢

将div.id放入映射到目标URL的关联数组中,然后按键查找。如果每次查找只需加载一次,则一次哈希查找将胜过线性数量的if/else if比较


这给我的印象是,无论微性能如何,它都更加优雅、可读或可维护。我不清楚哪一个是数组v。运行if/else如果速度更快,则必须配置文件。但是,如果您1必须进行时间优化,2每次加载页面时只希望使用一次此代码,那么您最好将您期望的url放在If/elif块的顶部。请务必准确地说明您正在这样做,以便将来的开发人员不会按字母顺序排列它们。

将div.id放入映射到目标URL的关联数组中,然后按键查找它。如果每次查找只需加载一次,则一次哈希查找将胜过线性数量的if/else if比较

if $("#abc) then

 var dynLink = $('<a href=zzz.html"'>Cosmetics</a>');
    $("#abc").append(dynLink);

else if $("#xyz")
 var dynLink = $('<a href=abc.html"'>LEather</a>');
    $("#xyz").append(dynLink);
这给我的印象是,无论微性能如何,它都更加优雅、可读或可维护。我不清楚哪一个是数组v。运行if/else如果速度更快,则必须配置文件。但是,如果您1必须进行时间优化,2每次加载页面时只希望使用一次此代码,那么您最好将您期望的url放在If/elif块的顶部。请务必准确地说明您正在这样做,以便将来的开发人员不会按字母顺序排列它们

if $("#abc) then

 var dynLink = $('<a href=zzz.html"'>Cosmetics</a>');
    $("#abc").append(dynLink);

else if $("#xyz")
 var dynLink = $('<a href=abc.html"'>LEather</a>');
    $("#xyz").append(dynLink);
对于初学者来说,这是不言自明的

说真的,你应该开始仔细检查里面的东西。它是JavaScript引用和演示示例的好地方

对于初学者来说,这是不言自明的

说真的,你应该开始仔细检查里面的东西。这是JavaScript参考和演示示例的好地方。

您可以尝试以下方法:

var link = [
    ["#abc", "#wfh", "http://www.123.com", "Maine"],
    ["#123", "#qwe", "http://www.abc.com", "Texas"]
];

$.each(link, function(e) {
    $(link[e][0] + "," + link[e][1])
        .append("<a href='" + link[e][2] + "'>" + link[e][3] + "</a>");
});​
你可以试试这个:

var link = [
    ["#abc", "#wfh", "http://www.123.com", "Maine"],
    ["#123", "#qwe", "http://www.abc.com", "Texas"]
];

$.each(link, function(e) {
    $(link[e][0] + "," + link[e][1])
        .append("<a href='" + link[e][2] + "'>" + link[e][3] + "</a>");
});​

创建包含所有这些关系的对象,如下所示:

var links = {
    'abc': { link:'foo.html', text:'Foo Link' },
    'xyz': { link:'bar.html', text:'Bar Link' }
};
然后我们将添加几个div元素来测试这一点:

​<div id="abc"></div>
<div id="xyz"></div>​​​​​​​​​​
<div id="foo"></div>

演示:

创建一个包含所有这些关系的对象,如下所示:

var links = {
    'abc': { link:'foo.html', text:'Foo Link' },
    'xyz': { link:'bar.html', text:'Bar Link' }
};
然后我们将添加几个div元素来测试这一点:

​<div id="abc"></div>
<div id="xyz"></div>​​​​​​​​​​
<div id="foo"></div>


演示:

可能重复的-我在那里发布了一个涵盖所有答案的一般答案:-。可能重复的-我在那里发布了一个涵盖所有答案的一般答案:-。谢谢,但我对脚本太陌生了,以至于我无法理解。你能展示一些代码吗?为什么你在StackOverflow上?这是一个像我这样的初学者可以学习的地方,对吗?我确实试过了,不是我要你做的家庭作业。谢谢,但我对脚本太陌生了,以至于我无法理解。你能给我看一些代码吗?这是一个像我这样的初学者可以学习的地方,对吗?我确实试过了,不是我要你做的家庭作业。请原谅我的无知,但是在插入链接之前,你在哪里检查每个div的ID?哦,我现在明白代码了。这真漂亮。我怎样才能把两个答案标对呢?我向你投了赞成票:再问一个问题-我如何添加“或”条件..比如如果div.id=abc或div.id=123,那么//dothis@Gorgeous不幸的是,你不能。所以,只要记住,在你觉得最舒服的答案上做标记,然后回答问题我刚刚更新了您的代码,但wfh不起作用。有什么想法吗?请原谅我的无知,但是在插入链接之前,你在哪里检查每个div的ID呢?哦,我现在明白代码了。这真漂亮。我怎样才能把两个答案标对呢?我向你投了赞成票:再问一个问题-我如何添加“或”条件..比如如果div.id=abc或div.id=123,那么//dothis@Gorgeous不幸的是,你不能。所以,只要记住,在你觉得最舒服的答案上做标记,然后回答问题我刚刚更新了您的代码,但wfh不起作用。有什么想法吗?Derek首先向我展示了一些代码,然后提供了一个链接,在这里我可以学习编写这种代码。我将详细研究switch case语句。这看起来与我在JavaDerek中使用的类似,感谢您首先向我展示了一些代码,然后提供了一个链接,在这里我可以学习编写这种代码。我将详细研究switch case语句。这看起来与我在JavaJonathan中使用的类似,这是一个非常好的解决方案,但在性能方面如何确定您的解决方案或Shaz解决方案的性能更好?Jonathan,这是一个非常好的解决方案,但在性能方面如何确定您的解决方案或Shaz解决方案的性能更好?