4 Stimmen

Wie kann man mit jQuery auf ein verstecktes Dom-Element zugreifen?

Ich habe eine HTML-Div (ich bin mit Twitter Bootstrap zu verstecken-Show div2 ), die wie folgt aussehen:

HTML:

<div id="div1">
  <button id="mybtn">Button</button>
  <div id="div2" class="modal hide fade span12" style="display: none;">
    <button id="anotherButton" data-char="">AnotherButton</button>
  </div>
</div>

Mit jQuery im versuchen, den Wert von ändern data-char während ich auf mybtn . Aber ohne Erfolg, denn div2 verborgen ist. console.log($('#anotherButton')); ein leeres Array zurückgeben.

Gibt es eine Möglichkeit, versteckte DOM mit jQuery oder Javascript zugreifen?

* Bearbeiten: * Wenn dies nicht besser funktioniert, kehren Sie zurück. undefined :

$('#mybtn').live('click', function(e) 
{
    //or e.preventDefault();
    $('#anotherbutton').attr("data-char", "assigned");
    alert($('#anotherbutton').attr("data-char"));
});

3voto

Adil Punkte 143047

Sie können sie zuweisen

Live-Demo

$(function(){
    $('#anotherButton').attr('char', "assigned");
    alert($('#anotherButton').attr('char'));
});

bei Klick auf die Schaltfläche

Live-Demo

$(function(){
   $('#anotherButton').attr('data-char', "assigned");
   alert($('#anotherButton').attr('data-char'));
});

1voto

Shyju Punkte 205236

Es sieht so aus data Methode funktioniert nicht bei Elementen, die sich im verborgenen Zustand befinden. Sie sollten verwenden attr Methode.

Das sollte gut funktionieren

$(function(){
  $("#mybtn").click(function(e){
    e.preventDefault();
        $("#anotherButton").attr("data-char","new value");
  });    
});

Arbeitsprobe http://jsfiddle.net/kshyju/a7Cua/4/

1voto

kgautron Punkte 7528

Die Tatsache, dass sie versteckt ist, ändert daran nichts. Das Problem ist wahrscheinlich, dass der js-Code vor dem HTML-Code der Schaltfläche steht. Fügen Sie ihn entweder danach ein, oder fügen Sie ihn in einen Listener wie $(document).ready() um sicherzugehen, dass er verarbeitet wurde, wenn Sie versuchen, ihn abzurufen.

0voto

ollien Punkte 4168

Pruebe $(button:hidden)

Das funktioniert in der Regel bei solchen Dingen,

Quelle:http://api.jquery.com/hidden-selector/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X