如何在jquery中只显示一个指定的div

时间:2016-07-13 10:35:47

标签: php jquery element display

当我点击带有.showFormButton类的按钮时,我试图显示一个指定的div,但不幸的是,每个div都会出现类.showForm。如何使用jQuery只显示一个.showForm div? JQUERY:

$(document).ready(function() {
$(".showFormButton").click(function(e){
e.preventDefault();
$(".showForm").css('display', 'block');
$(".showForm").css('position', 'absolute');
});
});

HTML

print "<input type='submit' class='showFormButton' VALUE='Ulubiony' onclick='ShowDiv()'>";

    print "<div style='display: none; margin-left: -170px; margin-top: -60px; background-image: linear-gradient(rgb(15, 159, 220),rgb(14, 108, 148));' class='showForm'>";
        print "<div >";
            print "<p><b>Dodaj do ulubionych pracownika</b></br> [".$row['imie1']. " ".$row['nazwisko1']."]</p>";
            print "<p>Osobista notatka</p>";
            print "<FORM ACTION='view_tm.php' METHOD='POST' ENCRYPT='multipart/form-data' name='ulubiony_pracownik_dodaj'>";
            print "<textarea name='id_pracownik_op_notatka' rows='10' cols='45'>". $row['notatka'] ."</textarea>";
            print "<input type='hidden' name='id_pracownik_op' value='" . $row['id_pracownik'] . "'>";
            print "<INPUT TYPE='submit' id='showFormButton' NAME='ulubiony_pracownik' VALUE='Dodaj do ulubionych'>";
            print "</form>";
        print "</div>";

3 个答案:

答案 0 :(得分:1)

您必须使用this对象来定位您对所点击元素的选择

$(document).ready(function() {
   $(".showFormButton").click(function(e){
     e.preventDefault();
     var elm = $(".showForm", this)
     elm.css({'display' : 'block', 'position' : 'absolute' });
   });
});

您可以使用.css(),而不是使用.addClass()来设置属性。因为它很容易维护,比如将来删除添加的属性。

$(document).ready(function() {
   $(".showFormButton").click(function(e){
     e.preventDefault();
     var elm = $(".showForm", this)
     elm.addClass("clicked");
   });
});

<强> CSS:

.clicked { display:block; position:absolute; }

修改

由于目标元素是当前元素的下一个兄弟,因此您必须在此上下文中使用.next(selector)

$(document).ready(function() {
   $(".showFormButton").click(function(e){
     e.preventDefault();
     var elm = $(this).next(".showForm")
     elm.css({'display' : 'block', 'position' : 'absolute' });
   });
});

答案 1 :(得分:0)

jQuery具有.show()功能,可以隐藏的东西可见。看一下这段代码:

$(document).ready(function () {
    $(document).on('click', '.action-btn', function () {
        $('.hidden-div').show();
    });
));

<div style="display: none;" class="hidden-div">
    Hidden text
</div>

<button class="action-btn">Show hidden div</button>

答案 2 :(得分:0)

您可以使用属性

来区分div
if (!function_exists('PaginationStartEnd')) {
function PaginationStartEnd($currentPage, $perPage, $total)
{
    $pageStart = number_format( $perPage * ($currentPage - 1));
    $pageEnd = $pageStart +  $perPage;

    if ($pageEnd > $total)
        $pageEnd = $total;

    $pageStart++;

    return array('start' => number_format($pageStart), 'end' => number_format($pageEnd));
}
}

HTML

$(document).ready(function() {
$(".showFormButton").click(function(e){
e.preventDefault();
$(".showForm[showme='1']").css('display', 'block');
$(".showForm[showme='1']").css('position', 'absolute');
});
});