Auf Button zugreifen

TiJo

Grünschnabel
Hallo zusammen,

ich versuche über JavaScript auf die Buttonfunktion und die Beschreibung zuzugreifen. Leider ohne Erfolg.
Es geht konrekt um den Warenkorbbutton bei meiner Jimdo-ProSeite.
Ich habe geschafft per CSS den Button zu disablen (komisches Wort).
Durch
CSS:
<style type="text/css">
#cc-m-product-9978835471 .cc-shop-addtocard
{display: none;}
</style>
kann ich den Button schonmal verschwinden lassen.

Dann habe ich das gleiche über JavaScript versucht:
Code:
<script type="text/javascript">

window.onload = function()
{
document.getElementById("c-m-product-9978835471").cc-shop-addtocard.disabled = true;
}
</script>
Doch leider passiert da gar nichts - bis auf den Fehler:
ReferenceError: invalid assignment left-hand side
Ich habs auch schon mit einfachen Anführungszeichen in der Klammer versucht - auch kein Erfolg.

Was ich eigentlich vorhabe, ist dem Warenkorbbutton für dieses Produkt eine neue Funktion zu geben:
HTML:
<button class="cc-shop-addtocard cc-no-clickable-arrow" data-action="addToCart">
    <span class="cc-shop-addtocard-text">
      In den Warenkorb    </span>
</button>
Der Button befindet sich im Container
HTML:
<div id="cc-m-product-9978835471" itemscope="" itemtype="http://schema.org/Product">

Könnte mir da jemand weiterhelfen? Meine JS sind momentan leider noch sehr beschränkt :(
 
Guten Tag,

also ich habe zumindest deinen Fehler gefunden:
Code:
<script type="text/javascript">
window.onload = function()
{
document.getElementById("c-m-product-9978835471").cc-shop-addtocard.disabled = true;
}
</script>

Der Fehler (ReferenceError: invalid assignment left-hand side) erscheint, da du auf eine Eigenschaft von c-m-product-997883547 zugreifen möchtest.
Da jedoch 1. Diese Eigenschaft nicht existiert und 2. Die Eigenschaft ungültige Zeichen (-) enthält, funktioniert jeglicher Zugriff nicht.

Ich gehe mal davon aus, dass du ähnlich wie mit CSS, auf das Element zugreifen wolltest:
Code:
// CSS
#cc-m-product-9978835471 .cc-shop-addtocard

// JavaScript
document.getElementById("c-m-product-9978835471").cc-shop-addtocard.disabled = true;

Wenn ja, kannst du die Methode document.querySelectorAll() verwenden.
Als Argument erwartet die Methode einen CSS-Selektor.
Hier: #cc-m-product-9978835471 .cc-shop-addtocard
Als Rückgabewert erhältst du eine Auflistung aller Elemente, die selektiert wurden.
Nun musst du wissen, welche Buttons du deaktivieren möchtest.
Wenn du einzelne Buttons deaktivieren möchtest, reicht es aus, wenn du direkt auf ein Element, aus der Liste, zugreifst:
Code:
Auflistung[0].disabled = true;
Solltest du auf mehrere Elemente zugreifen wollen, dann würde ich dir eine for-Schleife empfehlen:
Code:
for (var a = 0; a < Auflistung.length; a++) {
  //ggf. Bedingungen
  Auflistung[a].disabled = true;
}

Ich hoffe, dass ich dir weiterhelfen konnte.

MfG
 
Zuletzt bearbeitet:
ich habs über Umwege geschafft =)

Code:
$("#cc-m-product-9978835471").find( "button" ).eq( 0 ).text(function(){
                return $(this).text().replace("In den Warenkorb", "Anfrage Stammholz");
  });
  $("#cc-m-product-9978835471").find( "button" ).eq( 0 ).removeAttr('data-action');
  $("#cc-m-product-9978835471").find( "button" ).eq( 0 ).attr('onclick',  'alert("bar")');

allerdings kommt schon das nächste Problem. Ich muss abfragen, ob eine checkbox markiert ist. Ich schaffs allerdings nicht. Das einzige was ich schaffe, ist sie zu disablen.
Geht auf jordan-brennholz.de/neue-seite um diese Box:
Code:
m8502e028d7bada121
. Wenn diese markiert wurde, soll erstmal ein Pop-up erscheinen. Ab da weiß ich dann weiter. Die ganzen Code-Schnippel im Internet helfen mir nicht weiter :(
Vielleicht weiß da einer Rat?
 
Hi,

handelt es sich bei m8502e028d7bada121 um eine Klasse, solltest du sie mit
Code:
$('.m8502e028d7bada121').prop('checked', true)
markieren können.
Handelt es sich um den Name des input-Feldes:
Code:
$('input[name="m8502e028d7bada121"]').prop('checked', true)

Die Abfrage erfolgt ähnlich:
Code:
if ($('.m8502e028d7bada121').prop('checked')) {
    console.log('checked');
} else {
    console.log('unchecked');
}

Ich hoffe, das hilft dir weiter.

Ciao
Quaese
 
Hey, danke für deine Hilfe.

Ich hab das mal ausprobiert. Leider funktioniert das so nicht.
Code:
m813061592d3fddde1
ist der Name von dem Input-Feld.
Beim Laden der Seite bekomme ich einmalig in der Console "unchecked". Ein klicken auf die Checkbox erzeugt keine weitere Aktion in der Console.

Code:
<script type="text/javascript">
//<![CDATA[

if ($('input[name="m813061592d3fddde1"]').prop('checked')) {
    console.log('checked');
} else {
    console.log('unchecked');
}
//]]>
</script>
 
Hi,

zunächst habe ich in deiner Online-Seite keine Checkbox mit dem Name gefunden. Weiterhin habe ich dir mit dem Codefragment nur gezeigt, wie du die Eigenschaft checked abfragen und behandeln kannst. Deine Aufgabe ist es nun, das richtige Handling zu implementieren oder zumindest genauer zu posten, was genau du erreichen möchtest (z.B. bei welchem Event die Überprüfung stattfinden soll).

Ciao
Quaese
 
Code:
document.getElementById('cc-m-product-9978835471').display = 'none';

Damit ksnnst Du den DIV-Container ausblenden.
Ebenso geht es auch dass du via Button/Checkbox whatever es per Abfragen auch wieder einblenden lassen kannst.

Mit jQuery könntest Du es via:
Code:
$(document).ready(function(){
    $("button").click(function(){
        $("p").toggle();
    });
});
 
Wenn Du es selbst geschafft hast, wäre es sicherlich Nett von Dir wenn Du die Lösung hier rein schreibst, falls mal jemand das selbige Problem hat :)
 

Neue Beiträge

Zurück