Add a CSS class with Knockout JS












2














In Magento 2, I'm working on this Knockout JS template:
app/code/Magento/Checkout/view/frontend/web/template/shipping-address/shipping-method-item.html



<!--
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<tr class="row method-row"
click="element.selectShippingMethod">
<td class="col col-method">
<input type="radio"
class="radio"
ifnot="method.error_message"
ko-checked="element.isSelected"
ko-value="method.carrier_code + '_' + method.method_code"
attr="'aria-labelledby': 'label_method_' + method.method_code + '_' + method.carrier_code + ' ' + 'label_carrier_' + method.method_code + '_' + method.carrier_code,
'checked': element.rates().length == 1 || element.isSelected" />
</td>
<td class="col col-price">
<each args="element.getRegion('price')" render="" />
</td>
<td class="col col-method"
attr="'id': 'label_method_' + method.method_code + '_' + method.carrier_code"
text="method.method_title" />
<td class="col col-carrier"
attr="'id': 'label_carrier_' + method.method_code + '_' + method.carrier_code"
text="method.carrier_title" />
</tr>
<tr class="row row-error"
if="method.error_message">
<td class="col col-error" colspan="4">
<div role="alert" class="message error">
<div text="method.error_message"></div>
</div>
<span class="no-display">
<input type="radio"
attr="'value' : method.method_code, 'id': 's_method_' + method.method_code" />
</span>
</td>
</tr>


I've overridden this template in my custom theme and would like to add a class a selected CSS to the first <tr> element if the element.isSelected



So far I've tried



<tr class="row method-row"
click="element.selectShippingMethod" data-bind="css: { selected: element.isSelected }">


But this just adds the selected every <tr> from the loop when one is clicked.










share|improve this question














bumped to the homepage by Community yesterday


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.















  • Do you find the answer ? I try to do the same
    – tweetyx
    Jun 4 '18 at 17:10
















2














In Magento 2, I'm working on this Knockout JS template:
app/code/Magento/Checkout/view/frontend/web/template/shipping-address/shipping-method-item.html



<!--
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<tr class="row method-row"
click="element.selectShippingMethod">
<td class="col col-method">
<input type="radio"
class="radio"
ifnot="method.error_message"
ko-checked="element.isSelected"
ko-value="method.carrier_code + '_' + method.method_code"
attr="'aria-labelledby': 'label_method_' + method.method_code + '_' + method.carrier_code + ' ' + 'label_carrier_' + method.method_code + '_' + method.carrier_code,
'checked': element.rates().length == 1 || element.isSelected" />
</td>
<td class="col col-price">
<each args="element.getRegion('price')" render="" />
</td>
<td class="col col-method"
attr="'id': 'label_method_' + method.method_code + '_' + method.carrier_code"
text="method.method_title" />
<td class="col col-carrier"
attr="'id': 'label_carrier_' + method.method_code + '_' + method.carrier_code"
text="method.carrier_title" />
</tr>
<tr class="row row-error"
if="method.error_message">
<td class="col col-error" colspan="4">
<div role="alert" class="message error">
<div text="method.error_message"></div>
</div>
<span class="no-display">
<input type="radio"
attr="'value' : method.method_code, 'id': 's_method_' + method.method_code" />
</span>
</td>
</tr>


I've overridden this template in my custom theme and would like to add a class a selected CSS to the first <tr> element if the element.isSelected



So far I've tried



<tr class="row method-row"
click="element.selectShippingMethod" data-bind="css: { selected: element.isSelected }">


But this just adds the selected every <tr> from the loop when one is clicked.










share|improve this question














bumped to the homepage by Community yesterday


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.















  • Do you find the answer ? I try to do the same
    – tweetyx
    Jun 4 '18 at 17:10














2












2








2







In Magento 2, I'm working on this Knockout JS template:
app/code/Magento/Checkout/view/frontend/web/template/shipping-address/shipping-method-item.html



<!--
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<tr class="row method-row"
click="element.selectShippingMethod">
<td class="col col-method">
<input type="radio"
class="radio"
ifnot="method.error_message"
ko-checked="element.isSelected"
ko-value="method.carrier_code + '_' + method.method_code"
attr="'aria-labelledby': 'label_method_' + method.method_code + '_' + method.carrier_code + ' ' + 'label_carrier_' + method.method_code + '_' + method.carrier_code,
'checked': element.rates().length == 1 || element.isSelected" />
</td>
<td class="col col-price">
<each args="element.getRegion('price')" render="" />
</td>
<td class="col col-method"
attr="'id': 'label_method_' + method.method_code + '_' + method.carrier_code"
text="method.method_title" />
<td class="col col-carrier"
attr="'id': 'label_carrier_' + method.method_code + '_' + method.carrier_code"
text="method.carrier_title" />
</tr>
<tr class="row row-error"
if="method.error_message">
<td class="col col-error" colspan="4">
<div role="alert" class="message error">
<div text="method.error_message"></div>
</div>
<span class="no-display">
<input type="radio"
attr="'value' : method.method_code, 'id': 's_method_' + method.method_code" />
</span>
</td>
</tr>


I've overridden this template in my custom theme and would like to add a class a selected CSS to the first <tr> element if the element.isSelected



So far I've tried



<tr class="row method-row"
click="element.selectShippingMethod" data-bind="css: { selected: element.isSelected }">


But this just adds the selected every <tr> from the loop when one is clicked.










share|improve this question













In Magento 2, I'm working on this Knockout JS template:
app/code/Magento/Checkout/view/frontend/web/template/shipping-address/shipping-method-item.html



<!--
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<tr class="row method-row"
click="element.selectShippingMethod">
<td class="col col-method">
<input type="radio"
class="radio"
ifnot="method.error_message"
ko-checked="element.isSelected"
ko-value="method.carrier_code + '_' + method.method_code"
attr="'aria-labelledby': 'label_method_' + method.method_code + '_' + method.carrier_code + ' ' + 'label_carrier_' + method.method_code + '_' + method.carrier_code,
'checked': element.rates().length == 1 || element.isSelected" />
</td>
<td class="col col-price">
<each args="element.getRegion('price')" render="" />
</td>
<td class="col col-method"
attr="'id': 'label_method_' + method.method_code + '_' + method.carrier_code"
text="method.method_title" />
<td class="col col-carrier"
attr="'id': 'label_carrier_' + method.method_code + '_' + method.carrier_code"
text="method.carrier_title" />
</tr>
<tr class="row row-error"
if="method.error_message">
<td class="col col-error" colspan="4">
<div role="alert" class="message error">
<div text="method.error_message"></div>
</div>
<span class="no-display">
<input type="radio"
attr="'value' : method.method_code, 'id': 's_method_' + method.method_code" />
</span>
</td>
</tr>


I've overridden this template in my custom theme and would like to add a class a selected CSS to the first <tr> element if the element.isSelected



So far I've tried



<tr class="row method-row"
click="element.selectShippingMethod" data-bind="css: { selected: element.isSelected }">


But this just adds the selected every <tr> from the loop when one is clicked.







magento2 knockoutjs






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked May 11 '17 at 15:09









Holly

2,24233371




2,24233371





bumped to the homepage by Community yesterday


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.







bumped to the homepage by Community yesterday


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.














  • Do you find the answer ? I try to do the same
    – tweetyx
    Jun 4 '18 at 17:10


















  • Do you find the answer ? I try to do the same
    – tweetyx
    Jun 4 '18 at 17:10
















Do you find the answer ? I try to do the same
– tweetyx
Jun 4 '18 at 17:10




Do you find the answer ? I try to do the same
– tweetyx
Jun 4 '18 at 17:10










1 Answer
1






active

oldest

votes


















0














 <tr data-bind="css: { cssclassname: element.isSelected }">


html will render



<tr class="cssclassname"> 


You can use attr for ko bind class like this



<div data-bind="attr: {class: 'yourclasshere', id: 'yourIDhere'}">





share|improve this answer





















  • thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
    – Holly
    May 16 '17 at 10:52











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f174063%2fadd-a-css-class-with-knockout-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














 <tr data-bind="css: { cssclassname: element.isSelected }">


html will render



<tr class="cssclassname"> 


You can use attr for ko bind class like this



<div data-bind="attr: {class: 'yourclasshere', id: 'yourIDhere'}">





share|improve this answer





















  • thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
    – Holly
    May 16 '17 at 10:52
















0














 <tr data-bind="css: { cssclassname: element.isSelected }">


html will render



<tr class="cssclassname"> 


You can use attr for ko bind class like this



<div data-bind="attr: {class: 'yourclasshere', id: 'yourIDhere'}">





share|improve this answer





















  • thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
    – Holly
    May 16 '17 at 10:52














0












0








0






 <tr data-bind="css: { cssclassname: element.isSelected }">


html will render



<tr class="cssclassname"> 


You can use attr for ko bind class like this



<div data-bind="attr: {class: 'yourclasshere', id: 'yourIDhere'}">





share|improve this answer












 <tr data-bind="css: { cssclassname: element.isSelected }">


html will render



<tr class="cssclassname"> 


You can use attr for ko bind class like this



<div data-bind="attr: {class: 'yourclasshere', id: 'yourIDhere'}">






share|improve this answer












share|improve this answer



share|improve this answer










answered May 16 '17 at 10:36









mrtuvn

1,7001528




1,7001528












  • thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
    – Holly
    May 16 '17 at 10:52


















  • thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
    – Holly
    May 16 '17 at 10:52
















thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
– Holly
May 16 '17 at 10:52




thanks but as I said in my question, when I tried that it "just adds the selected every <tr> from the loop when one is clicked."
– Holly
May 16 '17 at 10:52


















draft saved

draft discarded




















































Thanks for contributing an answer to Magento Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f174063%2fadd-a-css-class-with-knockout-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

An IMO inspired problem

Management

Has there ever been an instance of an active nuclear power plant within or near a war zone?