小编urb*_*rbz的帖子

删除数组中具有重复属性的对象

假设我有一个像这样的数组:

var arr1 = [ 1, 1, 'a', 'a' ];
Run Code Online (Sandbox Code Playgroud)

我想删除重复项,这个片段很棒:

var deduped = arr1.filter(function (el, i, arr) {
    return arr.indexOf(el) === i;
});
Run Code Online (Sandbox Code Playgroud)

但我得到了这个数组,并且我想删除具有重复属性的对象:

var obj1 = {
  name: "John",
  id: 1
};
var obj2 = {
  name: "Moe",
  id: 1
};
var obj3 = {
  name: "Jane",
  id: 2
};

var arr2 = [obj1, obj2, obj3];
Run Code Online (Sandbox Code Playgroud)

如何编写一个函数来删除其中之一(在本例中)obj1obj2因为它们具有相同的id

我不想删除两者!

JsFiddle

代码片段参考

提前致谢。

javascript arrays jquery

5
推荐指数
1
解决办法
2212
查看次数

Selectbox获取所有选项值jquery

<select id="selectBox">
    <option value="all">all</option>
    <option value="0">Number 0</option>
    <option value="1">Number 1</option>
    <option value="2">Number 2</option>
    <option value="3">Number 3</option>
    <option value="4">Number 4</option>
    <option value="5">Number 5</option>
    <option value="6">Number 6</option>
    <option value="7">Number 7</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果用户选择all选项我需要获得所有其他选项值,如0,1,2,3,4,5,6,7

我的代码是:

$("#selectBox").live('change', function () {
    var val = this.value;
    if (val == "all") {
        $("#selectBox>option").map(function () {
            alert($(this).val());
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

任何的想法?

jquery

3
推荐指数
1
解决办法
1821
查看次数

Jquery-Steps:如果您之前跳过了一步,则返回会陷入无结束循环

我正在实施jquery-Step Advance Form

如果年龄小于 18 岁,我需要跳过一个步骤,这是上面链接中的一个类似示例,当我尝试实现相同的操作时,跳过一个步骤效果很好,但一旦我需要单击上一个按钮返回, JS 用来陷入 end less 循环!!

这里我创建了 jsfiddle 相同

这里是JS

$(function () {

    $("#form-3").steps({
        bodyTag: "fieldset",
        headerTag: "h1",
        onStepChanging: function (event, currentIndex, newIndex) {
            if (currentIndex > newIndex) {
                return true;
            }

            if (newIndex === 3 && Number($("#age").val()) < 18) {
                return false;
            }

            var form = $(this);

            if (currentIndex < newIndex) {
                $("#form-3 .body:eq(" + newIndex + ") label.error", form).remove();
                $("#form-3 .body:eq(" + newIndex + ") .error", form).removeClass("error");
            }

            return true;
        }, …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-steps

3
推荐指数
1
解决办法
3712
查看次数

如何在引导程序中的 input type=password 上使用工具提示显示输入的密码?

如何在放置在输入元素上的工具提示上显示“用户输入的type=password密码”,只有选择“Show Password”复选框。?

我想要实现的是。

如果用户选中复选框“显示密码”,那么密码应该使用工具提示在明文中可见。

到目前为止,我已经这样做了。

HTML

<form> 
    <span class="form-label">Password</span>
    <input type="password" id="password" class="form-control" style="width:350px;" placeholder="Password" data-toggle="tooltip" data-placement="right" title="" required>
    <div class="checkbox">
    <label><input type="checkbox" id="show-password" onClick="javascript:showPassword(this)">Show Password</label>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

爪哇脚本

function showPassword(obj) {
    if (obj.checked) {
        /* checkmark is checked*/

        /*show tooltip*/
        $('#password').tooltip('show');

        /*create onkeyup event so the tooltip changes as the password changes.*/
        $("#password").keyup(function () {
            var entered_password = document.getElementById("password").value;
            $("#password").attr("title", entered_password);
            $("#password").tooltip('fixTitle');
        });
    } else {
        //hide the tooltip//
    }
}
Run Code Online (Sandbox Code Playgroud)

CSS

@import url("http://maxcdn.bootstrapcdn.com/bootswatch/3.2.0/cerulean/bootstrap.min.css");
@import url("http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css");
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/834Nj/1/ …

html javascript css jquery twitter-bootstrap

3
推荐指数
1
解决办法
3721
查看次数

使用更优雅的解决方案展开/折叠多个表行

我有一个页面,我有多个数据表.

小提琴:

DEMO


<th>是一个<tr>带有类名的,每个行都有类似的命名...

rowToClick1 rowToClick2

......等等.


在for循环中,我动态生成数据 - 我有<tr>类名,类似于上面它们被命名为...

rowToExpand1 rowToExpand2

......等等.


目前,我的解决方案是扩展/折叠这些表,但它真的很难看:

$('.rowToClick1').click(function () {
    $(this).find('span').text(function (_, value) {
        return value == '-' ? '+' : '-';
    });
    $(".rowToExpand1").toggle();
});

$('.rowToClick2').click(function () {
    $(this).find('span').text(function (_, value) {
        return value == '-' ? '+' : '-';
    });
    $(".rowToExpand2").toggle();
});

// Many more similar functions repeatedly, up to 20+ ..
Run Code Online (Sandbox Code Playgroud)

我怎样才能更有效地做到这一点?

注意:我不希望表格同时展开/折叠,而是单独展开(就像我现在一样).

提前致谢.

javascript jquery

1
推荐指数
1
解决办法
2123
查看次数

在javascript中获取类名时出错

我在HTML中有这个代码片段

<ul class="orderedList">
    <li class="il l1">Appathon 2k14</li>
    <li class="il l2">Da Vinci Code</li>
    <li class="il l3">Java Beans</li>
    <li class="il l4">Gigabyte Wars</li>
    <li class="il l5">Spin A Web</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我在我的jquery脚本中为每个列表项都有事件处理程序,如下所示:

$(".l1").click(function x() {
    alert("Description : \n " + eventsDescription[0] + "\n\nLocation : \n" + loc[0]);
});
$(".l2").click(function x() {
    alert("Description : \n " + eventsDescription[1] + "\n\nLocation : \n" + loc[1]);
});
$(".l3").click(function x() {
    alert("Description : \n " + eventsDescription[2] + "\n\nLocation : \n" + loc[2]);
});
$(".l4").click(function x() {
    alert("Description : …
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5

1
推荐指数
1
解决办法
51
查看次数

检查另一个数组中一个数组的元素

我有3个数组,我想检查mainArray中是否存在任何子数组元素 - 然后它应该返回true.

我试过这个,但只有当mainArray包含子数组的所有项时它才返回true.

我的js:

var sub1 = ["0", "10"];
var sub2 = ["18", "3", "13", "4"];
var mainArr = ["0", "1", "5", "8", "9", "10"];
if (containsChk(sub1, mainArr)) {
    alert('yes');
} else {
    alert('no');
}

function containsChk(sub, main) {
    for (var i = 0, len = sub.length; i < len; i++) {
        if ($.inArray(sub[i], main) == -1) return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

javascript arrays jquery

0
推荐指数
1
解决办法
92
查看次数