2016-08-03 7 views
0

Ich möchte mit jQuery eine Schaltfläche mit der folgenden ID ausblenden. Ich weiß, wie man das mit .hide() macht, aber was ich nicht weiß, ist, wie man mit dem Fall umgeht, wo sich die ID dieser Schaltfläche ändert.jQuery Fähigkeit zu ändern ID für Element

id="Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete-Large" 

Ich weiß, dass die ID eines DOM-Element muss eindeutig sein, und in diesem Fall, ich weiß sicher, dass Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete wird sich nicht ändern. Allerdings sehe ich, dass es abhängig von der Größe des Browserfensters - Small oder -Medium oder - Large annehmen kann.

Wie geht man damit um? Würde ein regulärer Ausdruck funktionieren?

+3

Ändern IDs hat in der Regel Hinweis auf eine schlechte Ansatz. Was Sie beschreiben, sieht eher nach Kandidaten für Klassennamen oder Datenattribute aus. Wenn Sie eine Kontrolle darüber haben, halten Sie sich mit einer konstanten ID und farmen Sie die anderen Epitheta als Klassen oder Attribute – Utkanos

+0

Ich stimme Ihnen völlig zu. Diese ID wird jedoch von vordefiniertem Microsoft SharePoint-JavaScript als Teil einer Tab-Erstellungsfunktion aufgefüllt. Also bis ich von MS angestellt werde und es repariere, muss ich damit leben. – Spencer

+0

SharePoint ... urgh ... Ich fühle deinen Schmerz. – Utkanos

Antwort

0

Wenn es sicher gonna einer von ihnen 3 Sie alle wie diese abdecken kann:

$('#Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete-Small, #Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete-Medium, #Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete-Large').hide(); 

Utkanos richtig ist aber, sollten Sie nicht haben, zu ändern ids.

0

Warum wählst du sie nicht alle aus, denn es gibt nur eine Taste in jeder Größe, oder?

$("#"+id+"-Large, #"+id+"-Medium, #"+id+"-Small").hide(); 
0

Können Sie setzen ein anderes Attribut auf die Schaltfläche, die nicht (wie name, die auf die Schaltfläche eindeutig sein könnte) nicht ändert?

0

können Sie unten Art und Weise verwenden, um Ihr Element auszublenden, wenn id **"."** darin

$("#Ribbon\\.ContextualTabs\\.MyWork\\.Home\\.Tasks\\.MarkComplete-Large").hide(); 
Verwandte Themen