Categories
JavaScript Answers

How to Get the Text Node After an Element with JavaScript?

To get the text node after an element with JavaScript, we can use the nextSibling property to get the the text node after an element.

For instance, if we have:

<input type="checkbox" name='something' value='v1' /> hello world <br />

Then we write:

const text = document
  .querySelector('input[name="something"]')
  .nextSibling.nodeValue;
console.log(text)

We call document.querySelector with the selector string of the checkbox input to select it.

Then we get the value of the text node next to the checkbox with the nextSibling.nodeValue

Therefore, text is hello world according to the console log.

Categories
React Answers

How to Fix the Issue Where Default Prop is not Used When null is Passed as the Prop Value in React?

Sometimes, we may run into to the issue where default prop is not used when null is passed as the prop value in React.

In this article, we’ll look at how to fix the issue where default prop is not used when null is passed as the prop value in React.

Fix the Issue Where Default Prop is not Used When null is Passed as the Prop Value in React

To fix the issue where default prop is not used when null is passed as the prop value in React, we can pass in undefined instead of null as the value of the prop.

For instance, if we have the following default props in our component:

PropertyTitleLabel.defaultProps = {
  bedrooms: 1,
  propertyType: 'flat'
};

Then we write:

<PropertyTitleLabel bedrooms={bedrooms || undefined} />

to set bedrooms to 1 when the bedrooms prop value is undefined.

Conclusion

To fix the issue where default prop is not used when null is passed as the prop value in React, we can pass in undefined instead of null as the value of the prop.

Categories
JavaScript Answers

How to Get the Hour Difference Between Two Times with Moment.js?

To get the hour difference between two times with moment.js, we can use the duration, diff, asHours and asMinutes methods.

For instance, we can write:

const startTime = moment("12:26:59 am", "HH:mm:ss a");
const endTime = moment("06:12:07 pm", "HH:mm:ss a");
const duration = moment.duration(endTime.diff(startTime));
const hours = parseInt(duration.asHours());
const minutes = parseInt(duration.asMinutes()) % 60;

console.log(hours, minutes);

We parse 2 times into moment objects with the moment function.

We pass in the format of the time as the 2nd argument.

Then we call moment.duration with the difference between endTime and startTime that we get with the diff method.

Next, we get the hours part of the duration with the asHours method.

And we get the minutes part of the duration with the asMinutes method and get the remainder of that divided by 60.

Therefore, we get 17 45 from the console log.

Categories
JavaScript Answers

How to Get Paragraph Text Inside an Element with JavaScript?

To get paragraph text inside an element with JavaScript, we can use the innerHTML property of the element.

For instance, if we have:

<p>
  hello world
</p>

Then we write:

const text = document.querySelector('p').innerHTML;
console.log(text)

to get the p element with document.querySelector.

Then we use the innerHTML property to return the text.

Therefore, from the console log, we see that text is:

  hello world
Categories
JavaScript Answers

How to Calculate Date from Week Number in JavaScript?

To calculate date from week number in JavaScript, we can use the JavaScript date setDate and getDate methods.

For instance, we can write:

const getSundayFromWeekNum = (weekNum, year) => {
  const sunday = new Date(year, 0, (1 + (weekNum - 1) * 7));
  while (sunday.getDay() !== 0) {
    sunday.setDate(sunday.getDate() - 1);
  }
  return sunday;
}

console.log(getSundayFromWeekNum(10, 2021))

We create the getSundayFromWeekNum function that takes the weekNum and year parameters that we use to get the Sunday of the given year and week number.

In the function, we create a JavaScript date with the Date constructor with year, 0, (1 + (weekNum - 1) * 7) to get the date given weekNum and year.

Then we add a while loop to subtract 1 day from the sundday date until we reach a Sunday.

Finally, we return that result.

Then when we console log, we get Sun Feb 28 2021 00:00:00 GMT-0800 (Pacific Standard Time).