jQuery .show()具有相同名称的多个标记

时间:2014-10-24 10:55:09

标签: javascript php jquery html show

我有我的jQuery代码设置,所以当点击一个跨度时,

被隐藏,输入框会显示它的位置。从这里可以输入输入框,并将值传递回

我的问题是,如果我有多个具有相同名称的跨度,则只有第一个跨度将隐藏并显示输入,并且我希望显示所有具有相同名称的跨度。

跨度的名称是从php for循环动态生成的(title_ $ i,其中$ i是数组键),因此我无法手动重命名每个跨度。

我的HTML表格:

<table id="blank">
<tbody>
    <tr id="1" class="edit_tr" bgcolor="#ffffff">
        <td class="edit_td">
 <span id="title_1" class="text"><p>Bed 1</p></span>

            <input type="text" value="Bed 1" name="floor_room[1][]" class="editbox" id="title_input_1" style="display: none;">
        </td>
        <td class="edit_td">
 <span id="title_1" class="text"><p>Bed 2</p></span>

            <input type="text" value="Bed 2" name="floor_room[1][]" class="editbox" id="title_input_1" style="display: none;">
        </td>
    </tr>
    <tr id="2" class="edit_tr" bgcolor="#f2f2f2">
        <td class="edit_td">
 <span id="title_2" class="text"><p>Bath</p></span>

            <input type="text" value="Bath" name="floor_room[2][]" class="editbox" id="title_input_2" style="display: none;">
        </td>
        <td class="edit_td">
 <span id="title_2" class="text"><p>Bed 1</p></span>

            <input type="text" value="Bed 1" name="floor_room[2][]" class="editbox" id="title_input_2" style="display: none;">
        </td>
        <td class="edit_td">
 <span id="title_2" class="text"><p>Bed 2</p></span>

            <input type="text" value="Bed 2" name="floor_room[2][]" class="editbox" id="title_input_2" style="display: none;">
        </td>
    </tr>
  </tbody>
 </table>

我的jQuery:

$(".editbox").hide();
$(".text").show();
$(".edit_tr").click(function () {
    var ID = $(this).attr('id');
    $("#title_" + ID).hide();
    $("#title_input_" + ID).show();


}).change(function () {

    var ID = $(this).attr('id');
    var title = $("#title_input_" + ID).val();


    $("#title_" + ID).html(title);


});

// Edit input box click action
$(".editbox").mouseup(function () {
    return false
});

// Outside click action
$(document).mouseup(function () {
    $(".editbox").hide();
    $(".text").show();
});

并且正在使用jsFiddle:http://jsfiddle.net/8resbu2c/

2 个答案:

答案 0 :(得分:0)

您不能在单个视图中为多个元素提供相同的ID。如果您需要为多个元素指定相同的名称。最好为它们提供相同的类名来识别。

答案 1 :(得分:0)

使用

$('name=["floor_room[1][]"]').show();

使用dom的名称选择器。